LARAVEL 4
Librería que reconoce qué dependencias tienen declaradas nuestras clases
Permite instanciar sin preocuparse por pasar las dependencias de un lado a otro
__construct()
public function __construct(My\Class $class){
$this->class = $class;
}
Method Injection (Laravel 5!)
protected function doSomething(My\Class $class){
$class // Instancia de My\Class
}
App::make()
protected function doSomething(){
$myClass = App::make('My\Class');
}
public function __construct(My\ClassInterface $class){
$this->class = $class;
}
NO!
Hay que decirle a Laravel qué implementación usar
App::bind('My\ClassInterface', 'My\ClassImplementation');
<?php namespace Illuminate\Filesystem;
use Illuminate\Support\ServiceProvider;
class FilesystemServiceProvider extends ServiceProvider {
/**
* Register the service provider.
*
* @return void
*/
public function register()
{
$this->app->bindShared('files', function() { return new Filesystem; });
}
}