New on this version
NOTE: Code porting to PHP 8.1 ongoing.
Added
Authentication
Linna\Authentication\Exception\AuthenticationExceptionnow extendLinna\Router\Exception\RedirectException
Authorization
Linna\Authorization\ExceptionnamespaceLinna\Authorization\Exception\AuthorizationExceptionexception
Container
Linna\Container\Container::RULE_INTERFACEpublic constant, use it in rules for resolve interfacesLinna\Container\Container::RULE_ARGUMENTpublic constant, use it in rules for resolve other arguments
Data Mapper
Linna\DataMapper\DomainObjectAbstract->createdpublic propertyLinna\DataMapper\DomainObjectAbstract->lastUpdatepublic propertyLinna\DataMapper\DomainObjectAbstract->idprotected property accessible via__get()method
Router
Linna\Router\Router->parseQueryStringOnRewriteModeOnprotected propertyparseQueryStringOnRewriteModeOnas valid option for constructor
Session
Linna\Session\PgsqlSessionHandlerclassLinna\Session\Session->getSessionName()methodLinna\Session\Session->getSessionId()methodLinna\Session\Session->getStatus()method
Shared
Linna\Shared\AbstractAccessTraittraitLinna\Shared\ArrayAccessTraittraitLinna\Shared\PropertyAccessTraittraitLinna\Shared\AbstractStorageFactoryclass
Changed
- PHP 8.1 required
- Constructor property promotion used when possible
- Readonly properties used when possible
Authentication
Linna\Authentication\Exception\AuthenticationExceptionnow extendLinna\Router\Exception\RedirectExceptionLinna\Authentication\ProtectedControllerTrait->protect()now have as second argumentstring $routeinstead ofint $httpResponseCode = 403Linna\Authentication\ProtectedControllerTrait->protectWithRedirect()now have a third argumentstring $route
Cache
- Now drivers use Psr\SimpleCache instead of my typed verion
Container
Linna\Container\Containernow it is possible resolve classes with interface as parameterLinna\Container\Containerminor code optimizations
Data Mapper
Linna\DataMapper\MapperAbstract->save()update after insertLinna\DataMapper\DomainObjectAbstract->idwhen not set has value-1instead of0Linna\DataMapper\DomainObjectAbstract->setIdargument renamedobjectIdtoidLinna\DataMapper\DomainObjectAbstract->rIdpublic property removedLinna\DataMapper\DomainObjectAbstract->objectIdprotected property renamed toid
Mvc
Linna\Mvc\FrontControllernow search for defaultentryPointmethod instead ofindexif$routehas notactionsetLinna\Mvc\FrontControllerrenamed asLinna\Mvc\ModelViewController
Router
badRouteit is no longer a valid option for constructorLinna\Router\Routeas data-transfer object, all properties are read-only, all methods removedLinna\Router\Routenow used named arguments in constructor, array options no longer supportedLinna\Router\Routernow used named arguments in constructor, array options no longer supported
Session
- All properties now are
private, class more incapsulated
Fixed
Container
Linna\Container\Containererror when a class without__constructmethod is encountered
Data Mapper
Linna\DataMapper\MapperAbstract->save()update after insert
Session
Linna\Session\Sessionsession 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 requireModelas first parameter, useless reference
Router
Linna\Router\Router->badRouteprotected property
Storage
Linna\Storage\AbstractStorageFactoryclass, moved toLinna\Sharednamespace