Releases: linna/framework
Releases · linna/framework
v0.27.0
New on this version
NOTE: Code porting to PHP 8.1 ongoing.
Added
Authentication
Linna\Authentication\Exception\AuthenticationException
now extendLinna\Router\Exception\RedirectException
Authorization
Linna\Authorization\Exception
namespaceLinna\Authorization\Exception\AuthorizationException
exception
Container
Linna\Container\Container::RULE_INTERFACE
public constant, use it in rules for resolve interfacesLinna\Container\Container::RULE_ARGUMENT
public constant, use it in rules for resolve other arguments
Data Mapper
Linna\DataMapper\DomainObjectAbstract->created
public propertyLinna\DataMapper\DomainObjectAbstract->lastUpdate
public propertyLinna\DataMapper\DomainObjectAbstract->id
protected property accessible via__get()
method
Router
Linna\Router\Router->parseQueryStringOnRewriteModeOn
protected propertyparseQueryStringOnRewriteModeOn
as valid option for constructor
Session
Linna\Session\PgsqlSessionHandler
classLinna\Session\Session->getSessionName()
methodLinna\Session\Session->getSessionId()
methodLinna\Session\Session->getStatus()
method
Shared
Linna\Shared\AbstractAccessTrait
traitLinna\Shared\ArrayAccessTrait
traitLinna\Shared\PropertyAccessTrait
traitLinna\Shared\AbstractStorageFactory
class
Changed
- PHP 8.1 required
- Constructor property promotion used when possible
- Readonly properties used when possible
Authentication
Linna\Authentication\Exception\AuthenticationException
now extendLinna\Router\Exception\RedirectException
Linna\Authentication\ProtectedControllerTrait->protect()
now have as second argumentstring $route
instead ofint $httpResponseCode = 403
Linna\Authentication\ProtectedControllerTrait->protectWithRedirect()
now have a third argumentstring $route
Cache
- Now drivers use Psr\SimpleCache instead of my typed verion
Container
Linna\Container\Container
now it is possible resolve classes with interface as parameterLinna\Container\Container
minor code optimizations
Data Mapper
Linna\DataMapper\MapperAbstract->save()
update after insertLinna\DataMapper\DomainObjectAbstract->id
when not set has value-1
instead of0
Linna\DataMapper\DomainObjectAbstract->setId
argument renamedobjectId
toid
Linna\DataMapper\DomainObjectAbstract->rId
public property removedLinna\DataMapper\DomainObjectAbstract->objectId
protected property renamed toid
Mvc
Linna\Mvc\FrontController
now search for defaultentryPoint
method instead ofindex
if$route
has notaction
setLinna\Mvc\FrontController
renamed asLinna\Mvc\ModelViewController
Router
badRoute
it is no longer a valid option for constructorLinna\Router\Route
as data-transfer object, all properties are read-only, all methods removedLinna\Router\Route
now used named arguments in constructor, array options no longer supportedLinna\Router\Router
now used named arguments in constructor, array options no longer supported
Session
- All properties now are
private
, class more incapsulated
Fixed
Container
Linna\Container\Container
error when a class without__construct
method is encountered
Data Mapper
Linna\DataMapper\MapperAbstract->save()
update after insert
Session
Linna\Session\Session
session die because it does not refresh expiration time on client, also if present user interaction, with browser
Removed
Mvc
Linna\Mvc\View->__construct()
no longer requireModel
as first parameter, useless reference
Router
Linna\Router\Router->badRoute
protected property
Storage
Linna\Storage\AbstractStorageFactory
class, moved toLinna\Shared
namespace
v0.26.0
New on this version
Added
Data Mapper
Linna\DataMapper\UUID4
class
Router
Linna\Router\Route->allowed
propertyLinna\Router\Route->getAllowed()
methodLinna\Router\Router
chars accepted in route params now are 0-9 A-Z a-z ._-Linna\Router\Exception
namespaceLinna\Router\Exception\RedirectException
exception
Changed
- minimum php version 7.2
- tests updated
Router
Linna\Router\Router->__construct()
now require aLinna\Router\RouteCollection
as first argument
Storage
Linna\Storage\ConnectorsInterface->getResource()
now has return typeobject
Linna\Storage\Connectors\PdoConnector->getResource()
now has return typeobject
Linna\Storage\Connectors\MysqliConnector->getResource()
now has return typeobject
Linna\Storage\Connectors\MongoDBConnector->getResource()
now has return typeobject
Fixed
Linna\Authentication\User->changePassword()
typo error in method nameLinna\Mvc\FrontController->runView()
error when$this->routeAction
value called as method and not declared on view class
v0.25.0
New on this version
Added
Authentication
Linna\Authentication\ProtectedController->protectWithRedirect()
methodLinna\Authentication\Exception\AuthenticationException
exception
Authorization
Linna\Authorization\EnhancedUser->__construct()
Linna\Authorization\EnhancedUser->hasRole()
methodLinna\Authorization\EnhancedUser->hasRoleById()
methodLinna\Authorization\EnhancedUser->hasRoleByName()
methodLinna\Authorization\EnhancedUserMapperInterface->grantPermission()
methodLinna\Authorization\EnhancedUserMapperInterface->grantPermissionById()
methodLinna\Authorization\EnhancedUserMapperInterface->grantPermissionByName()
methodLinna\Authorization\EnhancedUserMapperInterface->revokePermission()
methodLinna\Authorization\EnhancedUserMapperInterface->revokePermissionById()
methodLinna\Authorization\EnhancedUserMapperInterface->rovekePermissionByName()
methodLinna\Authorization\EnhancedUserMapperInterface->addRole()
methodLinna\Authorization\EnhancedUserMapperInterface->addRoleById()
methodLinna\Authorization\EnhancedUserMapperInterface->addRoleByName()
methodLinna\Authorization\EnhancedUserMapperInterface->removeRole()
methodLinna\Authorization\EnhancedUserMapperInterface->removeRoleById()
methodLinna\Authorization\EnhancedUserMapperInterface->removeRoleByName()
methodLinna\Authorization\FetchByPermissionInterface
interfaceLinna\Authorization\FetchByRoleInterface
interfaceLinna\Authorization\FetchByUserInterface
interfaceLinna\Authorization\PermissionTrait->canById()
methodLinna\Authorization\PermissionTrait->canByName()
methodLinna\Authorization\PermissionMapperInterface->permissionExistById()
methodLinna\Authorization\PermissionMapperInterface->permissionExistByName()
methodLinna\Authorization\Role->isUserInRole()
methodLinna\Authorization\Role->isUserInRoleById()
methodLinna\Authorization\Role->isUserInRoleByName()
methodLinna\Authorization\RoleMapperInterface->grantPermission()
methodLinna\Authorization\RoleMapperInterface->grantPermissionById()
methodLinna\Authorization\RoleMapperInterface->grantPermissionByName()
methodLinna\Authorization\RoleMapperInterface->revokePermission()
methodLinna\Authorization\RoleMapperInterface->revokePermissionById()
methodLinna\Authorization\RoleMapperInterface->revokePermissionByName()
methodLinna\Authorization\RoleMapperInterface->addUser()
methodLinna\Authorization\RoleMapperInterface->addUserById()
methodLinna\Authorization\RoleMapperInterface->addUserByName()
methodLinna\Authorization\RoleMapperInterface->removeUser()
methodLinna\Authorization\RoleMapperInterface->removeUserById()
methodLinna\Authorization\RoleMapperInterface->removeUserByName()
methodLinna\Authorization\RoleToUserMapperInterface
interface
Data Mapper
Linna\DataMapper\FetchAllInterface
interfaceLinna\DataMapper\FetchByNameInterface
interfaceLinna\DataMapper\FetchLimitInterface
interface
Changed
Authentication
Linna\Authentication\LoginAttempt
default value added to propertiesLinna\Authentication\Password->__construct()
now accept as agumentint $algo
andarray $options
Linna\Authentication\ProtectedController
now throwAuthenticationException
when try to access to protected resource without authenticationLinna\Authentication\ProtectedController->protect()
metod now accept as argumentAuthentication
instance and http status code asint
Linna\Authentication\ProtectedController
renamed toLinna\Authentication\ProtectedControllerTrait
Linna\Authentication\User
default value added to propertiesLinna\Authentication\UserMapperInterface
extendsLinna\DataMapper\FetchByNameInterface
Authorization
Linna\Authorization\Authorization
default value added to propertiesLinna\Authorization\Authorization->can
now accept Permission instance, permission id as integer or permission name as stringLinna\Authorization\EnhancedUserMapperInterface
extendsLinna\Authorization\FetchByPermissionInterface
Linna\Authorization\EnhancedUserMapperInterface
extendsLinna\Authorization\FetchByRoleInterface
Linna\Authorization\Permission
default value added to propertiesLinna\Authorization\PermissionMapperInterface
extendsLinna\DataMapper\FetchByNameInterface
Linna\Authorization\PermissionMapperInterface
extendsLinna\Authorization\FetchByRoleInterface
Linna\Authorization\PermissionMapperInterface
extendsLinna\Authorization\FetchByUserInterface
Linna\Authorization\PermissionTrait->can()
now accepts as argumentLinna\Authorization\Permission
instanceLinna\Authorization\RoleMapperInterface
extendsLinna\Authorization\FetchByPermissionInterface
Linna\Authorization\RoleMapperInterface
extendsLinna\Authorization\FetchByUserInterface
Linna\Authorizationn\PermissionTrait
default value added to propertiesLinna\Authorizationn\Role
default value added to properties
Data Mapper
Linna\Linna\DataMapper\DomainObjectAbstract->rId
public property added
Router
Linna\Http
namespace renamed toLinna\Router
Linna\Router\Route
memory usage improvementLinna\Router\Route
all properties now are publicLinna\Router\Router
default value added to propertiesLinna\Router\Router
memory usage improvementLinna\Router\Router->map()
now accept as argument instance ofRouteInterface
instead ofarray
Mvc
Linna\Mvc\FrontController
default value added to propertiesLinna\Mvc\FrontController->__construct()
now acceptRouteInterface
instance as last argument instead of$action
and$param
Linna\Mvc\View->__construct()
now needModel
andTemplateInterface
as arguments
Session
Linna\Session\MemcachedSessionHandler
default value added to propertiesLinna\Session\Session
default value added to propertiesLinna\Session\Session
memory usage improvement
Storage
Linna\Storage\AbstractConnector
default value added to propertiesLinna\Storage\AbstractStorageFactory
default value added to propertiesLinna\Storage\ExtendedPDO
default value added to properties
Fixed
- Minor issues fixed
Removed
Authorization
Linna\Authorization\EnhancedUserMapperInterface->fetchUserByRole()
methodLinna\Authorization\EnhancedUserMapperInterface->fetchUserByPermission()
methodLinna\Authorization\EnhancedUserMapperInterface->grant()
methodLinna\Authorization\EnhancedUserMapperInterface->revoke()
methodLinna\Authorization\PermissionMapperInterface->fetchPermissionsByRole()
methodLinna\Authorization\PermissionMapperInterface->fetchPermissionsByUser()
methodLinna\Authorization\PermissionMapperInterface->fetchUserPermissionHashTable()
methodLinna\Authorization\PermissionMapperInterface->permissionExist()
methodLinna\Authorization\PermissionTrait->getPermissions()
methodLinna\Authorization\PermissionTrait->setPermissions()
methodLinna\Authorization\Role->getUsers()
methodLinna\Authorization\Role->setUsers()
methodLinna\Authorization\RoleMapperInterface->fetchUserInheritedPermissions()
methodLinna\Authorization\RoleMapperInterface->permissionGrant()
methodLinna\Authorization\RoleMapperInterface->permissionRevoke()
methodLinna\Authorization\RoleMapperInterface->userAdd()
methodLinna\Authorization\RoleMapperInterface->userRemove()
method
Router
Linna\Router\NullRoute->toArray()
methodLinna\Router\RouteCollection->toArray()
method, use->getArrayCopy()
insteadLinna\Router\RouteInterface->toArray()
method
Shared
Linna\Shared\ClassOptionsTrait
trait
For more information read the full changelog.
v0.24.0
New on this version
Added
Linna\Authentication\PasswordGenerator
classLinna\DI\Container
constructor, now rules should be passed here- void return type to methods
- Namespace for tests
Changed
- Minimun PHP version: 7.1
- Exception messages
Linna\Authentication\Authenticate
renamed toLinna\Authentication\Authentication
Linna\Authentication\EnhancedAuthenticate
renamed toLinna\Authentication\EnhancedAuthentication
Linna\Authentication\EnhancedAuthenticateMapperInterface
renamed toLinna\Authentication\EnhancedAuthenticationMapperInterface
Linna\Authorization\Authorize
renamed toLinna\Authorization\Authorization
Linna\DI
namespace renamed toLinna\Container
- Tests updated
Removed
Linna\Helper\Env
class, use instead dotenv packageLinna\Helper\Str
classLinna\Http\RouterCached
class, caching will be added to app packageLinna\DI\Container->setRules()
method
For more information read the full changelog.
v0.23.1
v0.23.0
New on this version
Added
Linna\Authentication\User->uuid
propertyLinna\Mvc\Model->set()
method for set data to notify to observerLinna\Mvc\Model->get()
method for retrive data to notify to observerLinna\Helper\Env
class #58Linna\Helper\Eng::get()
static methodLinna\Helper\Str
class #58Linna\Helper\Str::startsWith()
static methodLinna\Helper\Str::endsWith()
static method
Changed
Linna\Cache\DiskCache->__construct()
ttl option removedLinna\Http\FastMapTrait
merged intoLinna\Http\Router
through magic__call()
Linna\Session\MysqlPdoSessionHandler->__construct()
now expectLinna\Storage\ExtendedPDO
as parameterLinna\Storage\PdoStorage
moved toLinna\Storage\Connectors\PdoConnector
Linna\Storage\MysqliStorage
moved toLinna\Storage\Connectors\MysqliConnector
Linna\Storage\MongoDbStorage
moved toLinna\Storage\Connectors\MongoDBConnector
Linna\Storage\StorageInterface
renamed toLinna\Storage\ConnectorInterface
Linna\Storage\StorageFactory->get()
now return the connection resource directly
Fixed
Linna\Auth\Authenticate
login data doesn't update after loginLinna\Mvc\FrontController
action execution before and after
Removed
Linna\Http\FastMapTrait
For more information read the full Changelog until now.
v0.22.0
New on this version
Added
Linna\Autoloader->unregister()
methodLinna\Authentication\EnhancedAuthenticate
classLinna\Authentication\EnhancedAuthenticateMapperInterface
interfaceLinna\Authentication\LoginAttempt
classLinna\Storage\ExtendedPDO->getLastOperationStatus()
method
Changed
Linna\Auth
splitted intoLinna\Authentication
andLinna\Authorization
Linna\Auth\Authenticate
moved under namespaceLinna\Authentication
Linna\Auth\Password
moved under namespaceLinna\Authentication
Linna\Auth\ProtectedController
moved under namespaceLinna\Authentication
Linna\Auth\User
moved under namespaceLinna\Authentication
Linna\Auth\UserMapperInterface
moved under namespaceLinna\Authentication
Linna\Auth\Authorize
moved under namespaceLinna\Authorization
Linna\Auth\EnhancedUser
moved under namespaceLinna\Authorization
Linna\Auth\EnhancedUserMapperInterface
moved under namespaceLinna\Authorization
Linna\Auth\Permission
moved under namespaceLinna\Authorization
Linna\Auth\PermissionMapperInterface
moved under namespaceLinna\Authorization
Linna\Auth\PermissionTrait
moved under namespaceLinna\Authorization
Linna\Auth\Role
moved under namespaceLinna\Authorization
Linna\Auth\RoleMapperInterface
moved under namespaceLinna\Authorization
- Tests updated
For more information read the full Changelog until now.