Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/09/2013, 12:06
eternoaprendiz
 
Fecha de Ingreso: junio-2013
Ubicación: Madrid
Mensajes: 73
Antigüedad: 10 años, 9 meses
Puntos: 27
Respuesta: Duda "teológica" sobre MVC

Cita:
... simplemente inyectaría el Provider vía constructor
Ese mecanismo de inyectar el provider en el constructor está disponible en Laravel:

Por un lado, vinculamos una inteface con un repositorio
Código PHP:
Ver original
  1. App::bind(
  2.     'Repositories\PostRepositoryInterface',
  3.     'Repositories\RedisPostRepository'
  4. );

Y por otro, en el constructor del controlador simplemente tenemos algo así:

Código PHP:
Ver original
  1. use Repositories\PostRepositoryInterface as Post;
  2.  
  3. class PostsController extends BaseController {
  4.  
  5.     protected $post;
  6.  
  7.     public function __construct(Post $post)
  8.     {
  9.         $this->post = $post;
  10.     }
  11.  
  12.     public function index()
  13.     {
  14.         $posts = $this->post->all();
  15.  
  16.         return View::make('posts.index', ['posts' => $posts]);
  17.     }
  18.  
  19. }

De tal manera que si al controlador no le pasamos un Provider Laravel instancia el bind que tenga definido.

Supongo que en otros frameworks puede haber otros mecanismos parecidos. O puede que este sistema tampoco sea lo más recomendado. Todavía no lo he puesto en práctica