greabock / maker by greabock

Laravel 5.4 maker
12,265
18
4
Package Data
Maintainer Username: greabock
Maintainer Contact: greabock@gmail.com (Greabock)
Package Create Date: 2017-01-29
Package Last Update: 2017-07-04
Language: PHP
License: MIT
Last Refreshed: 2024-11-16 15:01:36
Package Statistics
Total Downloads: 12,265
Monthly Downloads: 0
Daily Downloads: 0
Total Stars: 18
Total Watchers: 4
Total Forks: 1
Total Open Issues: 0

Build Status

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.