v1.0.0-alpha10 (?)
- Nothing
- Nothing
v1.0.0-alpha9 (2023-09-24)
- Moved all builder classes into the namespace of the things they build (#273)
Aphiria\Application\Builders
=>Aphiria\Application
Aphiria\Framework\Api\Builders
=>Aphiria\Framework\Api
Aphiria\Framework\Console\Builders
=>Aphiria\Framework\Console
Aphiria\Routing\Builders
=>Aphiria\Routing
Aphiria\Validation\Builders
=>Aphiria\Validation
- Updated to PHPUnit 10.1 (#248, #250)
- Updated
IAuthenticator::authenticate()
,IAuthenticator::challenge()
,IAuthenticator::forbid()
,IAuthenticator::logIn()
, andIAuthenticator::logOut()
to take in no, one, or many authentication scheme names (#269) - Replaced
#[RouteGroup]
attribute with#[Controller]
(#295) - Added the authentication scheme name(s) to
AuthenticationResult
(#269) - Removed
IUserAccessor
property fromAuthenticator
(#269) - Renamed
SchemeNotFoundException
toAuthenticationSchemeNotFoundException
(#269) - Moved filtering of principal and identity claims out of
getClaims()
and into a new methodfilterClaims()
(#291) AuthenitcationSchemeRegistry::getDefaultScheme()
now returns a scheme if it is the only one registered, even if it was not marked as the default (#296)
- Added ability to mock authentication calls in tests (#289)
- Added automatic authentication to
Authorize
middleware when authentication has not previously happened (#264) - Added
ResponseAssertions::assertCookieIsUnset()
(#276) - Added
IBodyDeserializer
andNegotiatedBodyDeserializer
to simplify deserializing request and response bodies (#253, #255) - Added ability to easily deserialize request and response bodies in integration tests (#253)
- Added
PrincipalBuilder
andIdentityBuilder
(#257) - Added
IPrincipal::mergeIdentities()
(#262) - Added
AggregateAuthenticationException
when authenticating against multiple schemes and all of them failing (#269) - Added
YamlConfigurationFileReader
(#270)
- Fixed bug that caused console input to not be trimmed (#292)
v1.0.0-alpha8 (2022-12-10)
- Updated to require PHP 8.2 (#240)
- Made classes with only
public readonly
properties to bereadonly class
instead (#240)
v1.0.0-alpha7 (2022-11-27)
- Created a new application abstraction that will make it much easier to support asynchronous PHP runtimes such as Swoole and ReactPHP (#231)
- Changed
IApplicationBuilder::build()
to return anIApplication
(#231) - Renamed
Aphiria\Api\Application
toApiGateway
(#231) - Renamed
Aphiria\Console\Application
toConsoleGateway
and made it implementICommandHandler
instead ofICommandBus
(#231) - Changed
Command
andInputCompiler
to accept empty command names (used for the "about" command) (#231) - Updated
IntegrationTestCase::createApplication()
to return anIApplication
instance (#231)
- Changed
- Changed
TableFormatter
,PaddingFormatter
,IProgressBarObserver
, andProgressBarFormatter
to take in an options parameter in their format methods and added the concept of default options (#228) - Updated linter rules to place enum cases above most other elements (#222)
- Added
Aphiria\Framework\Api\Binders\RequestHandlerBinder
(#231) - Added
Aphiria\Framework\Api\Builders\SynchronousApiApplicationBuilder
(#231) - Added
Aphiria\Framework\Api\SynchronousApiApplication
(#231) - Added
Aphiria\Framework\Console\Binders\CommandHandlerBinder
(#231) - Added
Aphiria\Framework\Console\Builders\ConsoleApplicationBuilder
(#231) - Added
Aphiria\Framework\Console\ConsoleApplication
(#231) - Added
Aphiria\Framework\Net\Binders\ResponseWriterBinder
(#231)
- Removed
Aphiria\Console\Commands\ICommandBus
(#231)
v1.0.0-alpha6 (2022-02-26)
- Fixed bug that caused padding to be incorrectly applied to formatted strings in the console (#218)
- Fixed bug that caused console options whose values are arrays to not be an array when a single value is specified (#218)
- Fixed
RouteCollectionBuilder
to remove trailing slashes when the group path is not empty but the route path is (#198) - Fixed bug that caused console drivers to incorrectly detect the OS (#207)
- Fixed bug that failed to handle problem detail factories that used an
HttpStatusCode
enum value for the status (#202) - Fixed some PHPDoc to use generics where applicable (#178, #180)
- Fixed
Aphiria\Net\Http\Formatting\ResponseFormatter::redirectToUri()
to accept anHttpStatusCode
as well as anint
status code (#184) - Re-enabled Psalm in CI (#215)
- Re-enabled PHP-CS-Fixer in CI (#188)
- Removed
IRequest
parameter fromProblemDetailsExceptionRenderer::__construct()
and changedRequestBinder
to bind the request as a factory instead of a singleton (214) Aphiria\Collections\HashTable::getIterator()
andImmutableHashTable::getIterator()
now returnKeyValuePairIterator
, which allows you to grab the key and value directly from aforeach
loop rather than iterating over a list ofKeyValuePair
objects (#221)- Changed to using templatized CI workflows for DRY (#183)
- Removed PhpStorm meta files now that we're using generics (#210)
- Added the Authentication library (#191)
- Added the Authorization library (#191)
- Added the Security library (#191)
- Added
Controller::getUser()
to grab the current authenticated user (#208) - Added the
route:list
console command (#200) - Added the ability to specify middleware and whether to show class names as FQN in
route:list
(#218) - Added ability to search for middleware attributes that extend
Aphiria\Routing\Attributes\Middleware
(#187)
v1.0.0-alpha5 (2021-11-14)
- Fixed typos in PHPDoc (#159)
- Now requires PHP 8.1 (#159)
- Many methods now converted to readonly properties (#159)
Aphiria\Net\Http\Response::__construct()
now takes in either aStatusCode
or an int status code (#159)Aphiria\Net\Http\IResponse::getStatusCode()
now returnsStatusCode
andsetStatusCode()
takes in aStatusCode
(#159)Aphiria\Net\Http\Headers\Cookie::sameSite
now returnsSameSiteMode
(#159)- Converted the following classes to enums (#159):
Aphiria\Console\Input\ArgumentTypes
=>Aphiria\Console\Input\ArgumentType
Aphiria\Console\Input\OptionTypes
=>Aphiria\Console\Input\OptionType
Aphiria\Console\Output\Compilers\Elements\Colors
=>Aphiria\Console\Output\Compilers\Elements\Color
Aphiria\Console\Output\Compilers\Elements\TextStyles
=>Aphiria\Console\Output\Compilers\Elements\TextStyle
Aphiria\Console\Output\Lexers\OutputTokenTypes
=>Aphiria\Console\Output\Lexers\OutputTokenType
Aphiria\Net\Http\StatusCodes
=>Aphiria\Net\Http\StatusCode
Aphiria\Net\Http\Headers\SameSiteMode
(new)Aphiria\Routing\UriTemplates\Lexers\TokenTypes
=>Aphiria\Routing\UriTemplates\Lexers\TokenType
Aphiria\Routing\UriTemplates\Parsers\AstNodeTypes
=>Aphiria\Routing\UriTemplates\Parsers\AstNodeType
Aphiria\Console\Input\Argument
andAphiria\Console\Commands\Attributes\Argument
now take in anArgumentType
or list ofArgumentType
s instead of a bitwise-OR'd integer (#159)Aphiria\Console\Input\Option
andAphiria\Console\Commands\Attributes\Option
now take in anOptionType
or list ofOptionType
s instead of a bitwise-OR'd integer (#159)Aphiria\Api\Controllers\IRouteActionInvoker::invokeRouteAction()
now requires aClosure
$routeActionDelegate
instead of just acallable
(#159)Aphiria\Collections\IList::sort()
now requires aClosure
$comparer
instead of just acallable
(#159)Aphiria\Collections\ISet::sort()
now requires aClosure
$comparer
instead of just acallable
(#159)Aphiria\Console\Output\Formatters\PaddingFormatter::format()
now requires aClosure
$callback
instead of just acallable
(#159)Aphiria\DependencyInjection\IContainer::bindFactory()
now requires aClosure
$factory
instead of just acallable
(#159)Aphiria\DependencyInjection\IServiceResolver::for()
now requires aClosure
$callback
instead of just acallable
(#159)Aphiria\Validation\Constraints\CallbackConstraint()
now requires aClosure
$callback
instead of just acallable
(#159)Aphiria\Application\IModule::build()
renamed toconfigure()
(#165)- All Symfony dependencies were bumped to ^6.0 (#159)
- Added support for automatically resolving unknown encoders/decoders and normalizers/denormalizers in
Aphiria\Framework\Serialization\Binders\SymfonySerializerBinder
(#159) - Added support for
Symfony\Component\Serializer\Normalizer\BackedEnumNormalizer
so that enums can be properly (de)serialized (#159)
v1.0.0-alpha4 (2021-08-08)
- Fixed bug that prevented error messages from being displayed when the application runs out of memory (#142)
- Fixed a lot of PHPDoc to use
list<{type}>
instead of{type}[]
where applicable (#128) - Switched to using stable version of Xdebug during CI (#138)
- Re-enabled linter in libraries' CI (#139)
- Changed
IList::intersect()
,IList::reverse()
,IList::sort()
,IList::union()
,ISet::intersect()
,ISet::sort()
, andISet::union()
to return a new instance rather than change the original value (#131) - Changed all collection constructors to be final (#131)
- Updated to use PHP-CS-Fixer 3.0 (#140)
- Added support for generics to all collections to provide better typing (#147)
v1.0.0-alpha3 (2021-03-13)
- Fixed a bug that caused reading console input to throw an exception on certain setups (#122)
- Added the ability to read config values as objects (#124)
v1.0.0-alpha2 (2021-2-15)
- Fixed a bug that caused non-scalar values in
$_SERVER
to throw an exception when creating a request viaRequestFactory::createRequestFromSuperglobals()
(#116)
- Changed default port number to 8080 when running
php aphiria app:serve
(#114) - Reintroduced PHP-CS-Fixer and ran it (#106, #109, #111)
- Updated Psalm and removed unused suppressions (#112)
- Updated copyright year (#103)
- Literally everything