🚀 Second beta release.
REF: Extract object creation from Container into Factory
⚡️ DOC: Complete README rewrite, update docblocks
➕ ADD: The Factory now supports setters from traits.
➕ ADD: LazyValue functionality.
➕ ADD: Auto-resolution of typehinted constructor parameters, and of array typehints with no default value, along with directed auto-resolution.
➕ ADD: ContainerAssertionsTrait so that outehr packages can more easily test their container config classes.
🎉 Initial 2.0 beta release.
Container v1 configurations should still work, with one exception: the
lazyCall()method has been removed in favor of just
lazy()and all should be well.
Now compatible with PHP 5.3.
👉 Uses PSR-4 autoloading instead of PSR-0.
The package now has a series of Lazy classes to represent different types of lazy behaviors, instead of using anonymous functions.
No more cloning of Container objects; that was a holdover from when we had sub-containers very early in v1 and never really used.
Removed Forge and placed functionality into Container.
Removed the old Config object;
$setterare now properties on the Container.
No more top-level '*' config element.
Added ContainerBuilder and new Config object for two-stage configuration.
🔧 Now honors $setter values on interface configuration; that is, you can configure a setter on an interface, and classes implementing that interface will honor that value unless overridden by a class parent.
🚀 Thanks to HariKT, Damien Patou, Jesse Donat, jvb, and Grummfy for their contributions leading to this release!
🚀 Hygeine release.
- ➕ Add test for #38 -- looks OK
- 🔀 Merge pull request #32 from harikt/patch-dev
- ➕ Add a benching script
👻 [CHG] Config now throws Exception\SetterMethodNotFound when a setter method is configured but does not exist on the class
👻 [CHG] Container::set() now throws Exception\ServiceNotObject when the service being set is not an object.
👻 [CHG] Config now throws Exception\ReflectionFailure when reflection fails.
🏗 [DOC] Typo fixes and clarifications; add PHP 5.5 to Travis build
🚚 [DEL] Remove unused exceptions ContainerExists and ContainerNotFound
[ADD] Container::lazyInclude() and lazyRequire() to lazily include or require files
[ADD] Container::lazyCall() to lazily make a call to any callable, with sequential (not named) parameters, just like with call_user_func()
[ADD] Container::newFactory() method
[NEW] Factory class, to create new class instances using the Forge
🔨 [REF] Refactor Forge::newInstance() extract method mergeParams(), and make allowance for positional override params (these take precedence over named override params)
🚀 (This change log includes notes from in release 1.0.0, which failed to specify them.)
[ADD] Config now honors setters on trait methods.
[ADD] Method Container::lazy() for general-purpose lazy params (i.e., any param can now be lazy, not just services and class instantiations.)
📚 Special thanks to Yuya Takeyama for working on the documentation, along with Akihito Koriyama and Michal Amerek.
- The Forge::newInstance() method now has a third param, $setters, to allow passing of setter injection values.