greabock / maker
Laravel 5.4 maker
Installs: 12 265
Dependents: 0
Suggesters: 0
Security: 0
Stars: 18
Watchers: 4
Forks: 1
Open Issues: 0
Requires
- illuminate/container: 5.4.*
Requires (Dev)
- mockery/mockery: 0.9.*
- phpunit/phpunit: ~5.0
This package is auto-updated.
Last update: 2024-10-09 14:14:32 UTC
README
Intention (DEPRECATED)
Deprecated scince v5.4.16. Use method makeWith()
instead
Laravel 5.4 had severely crippled DI container.
The container's make method no longer accepts a second array of parameters. This feature typically indicates a code smell. Typically, you can always construct the object in another way that is more intuitive.
This library intends to bring back its former glory.
#Installation
composer require greabock/maker
After updating composer, add the Greabock\Maker\MakerServiceProvider::class
to the providers
array in config/app.php
#Usage
app(Maker::class)->make(Some::class, ['foo' => 'some', 'bar' => 'other']) // or make(Some::class, ['foo' => 'some', 'bar' => 'other']);
You can also bind closure:
use Illuminate\Contracts\Container\Container; use Greabock\Maker\Maker; app(Maker::class)->bind(Some::class, function(Container $container, $parameters){ $some = $container->make(Some::class); $some->doSomeThing($parameters); return $some; });
#Warning!
This function is similiar but isn't fully compatible with old App::make()
.
Contextual binding does not work when you build objects with Maker.