ADDED:
CHANGED:
REMOVED:
FIXED:
CHANGED:
- Improved error handling of file-system operations
CHANGED:
- Upgraded to PSR-11 v2.0.0
FIXED:
- #16: Deprecation notices on PHP 8.2
ADDED:
- Support for the
#[Inject]
property attribute
CHANGED:
- Increased minimum version requirement to PHP 8
- Significantly improved performance
REMOVED:
- Support for built-in autoloading
- Support for
@Inject
annotation
ADDED:
- Support for PHP 8
- Support for PHPUnit 9
CHANGED:
- The generated container uses
declare(strict_types=1)
- The generated container is PSR-12 compliant and uses typed properties
- Upgrade to PHPStan 0.12
FIXED:
- Run-time PHP version check
ADDED:
- Support for preloading for PHP 7.4+
- Support for property injection based on property type declarations
- Support for setting the memory limit
CHANGED:
- Increased minimum PHP version requirement to 7.4 as property type declarations were added
- Updated dev dependencies
- Removed unnecessary
::class
references from the generated container - Various optimizations via using
array_key_exists()
instead ofisset()
(further reading)
CHANGED:
- Improved performance of property injection by using
static function()
(see this commit for background)
FIXED:
- Edge case issues found by PHPStan
ADDED:
Psr4NamespaceEntryPoint
: Provides a convenient way to define all classes in a PSR-4 namespace as Entry PointPsr4WildcardHint
: Provides a convenient way to define Wildcard Hints if you use PSR-4 namespaces
CHANGED:
RuntimeContainer
became much-much faster- Faster compilation by optimizing filesystem and array handling
ADDED:
- Support for file-based container definitions
- Support for disabling autoload of an Entry Point via
ClassEntryPoint::disableAutoload()
andWildcardEntryPoint::disableAutoload()
- Support for autoloading reference definitions
CHANGED:
- Container definitions are inlined in the compiled container when possible
- Autoloaded definitions are inlined in the compiled container when possible
- Various other optimizations of the compiled container based on reference count of container definitions
- Interfaces and parent classes are also autoloaded when an Entry Point is autoloaded
- Optimize compilation time by minimizing class instantiations and caching
- Build the foundations of a faster dynamic container by making it possible to resolve the dependencies of a single class
FIXED:
- Definition binding
- Some issues related to autoloading
CHANGED:
- Apply the Woohoo Labs. Coding Standard
- Slightly optimized compilation time by importing functions from the global namespace
ADDED:
- Support for scalar injection
FIXED:
- String values containing special characters won't cause fatal error
ADDED:
- Support for Context-Dependent Dependency Injection
ADDED:
- Support for built-in just-in-time autoloading of the dependency graph of Entry Points
CHANGED:
- Optimized error handling in
AbstractCompiledContainer::get()
method - Optimized generation of compiled container by removing unnecessary variables
- Optimized retrieval of prototype container entries by removing unnecessary checks
- PHPUnit 7 is minimally required to run tests
FIXED:
- Entry points can not be duplicated now
ADDED:
RuntimeContainer
container implementation which doesn't need to be compiled
CHANGED:
- Renamed
AbstractContainer
toAbstractCompiledContainer
- Optimizing compilation time by using fully qualified function names
FIXED:
- PHP version check in the zen binary
CHANGED:
- Increase minimum PHP version requirement to 7.1
- Require
doctrine/annotations
v1.5.0 minimally - Do not use the deprecated
AnnotationRegistry::registerFile()
method
ADDED:
- Support for PSR-11
CHANGED:
- Optimized
$entryPoints
array - Optimized look-up of Singleton entries
REMOVED:
- Support for Container-Interop
FIXED:
- Regression when the container itself can't be retrieved
ContainerInterface
entry references the container entry properly- Removed unnecessary "suggest" block from composer.json
FIXED:
- Regression when
ContainerInterface
can't be retrieved
FIXED:
- Regression when
ContainerInterface
can't be retrieved
FIXED:
- Only Entry Points can be retrieved from the container
CHANGED:
- Improved property injection performance
FIXED:
- Fixed code formatting of the generated container
CHANGED:
- Improved performance even more
- The generated container became more consize
CHANGED:
- Improved performance
FIXED:
- Dependency resolution when definition hints are transitive
- Initial release