Header Ads Widget

Ticker

6/recent/ticker-posts

Comprensión Del Contenedor De Servicios De Laravel

 Este tutorial ayuda a comprender el contenedor de servicios de Laravel . El contenedor de servicios ayuda a administrar las dependencias de clases e inyectarlas. También ayuda a vincular interfaces a clases concretas.

Puede crear un objeto automáticamente usando el contenedor de servicio laravel en lugar de crearlo manualmente. Supongo que está familiarizado con laravel, si no, consulte el Tutorial CRUD de Laravel 5.6 usando el controlador de recursos .

Puede inyectar Dependencia mediante this: class, las dependencias se "inyectan" en la clase a través del constructor o, también puede utilizar, métodos "setter" para inyectar dependencias.

Ejemplo De Contenedor De Servicio Laravel

Estoy usando el modelo elocuente de estado para acceder al estado de la tarea desde la base de datos, lo estoy inyectando en el TaskController.phparchivo.

En el ejemplo anterior, TaskController necesita recuperar el estado de una fuente de datos, por lo que hemos inyectado el StatusRepositoryservicio responsable de obtener datos de la fuente de datos.

Cómo Vincular El Servicio En Laravel

Debe registrar su contenedor de servicios con la aplicación laravel.Las vinculaciones se registrarán mediante cualquier método de registro de sus proveedores de servicios.Podemos registrar una vinculación utilizando el método de vinculación, pasando el nombre de la clase o interfaz que deseamos registrar junto con un cierre que devuelve una instancia de la clase. Puede obtener más información del contenedor del servicio laravel .

Existen las siguientes opciones de tipo que laravel proporciona para vincular servicios:

  • Encuadernación simple
  • Encuadernación Singleton
  • Vinculación de instancias
  • Primitivas vinculantes
  • Primitivas de interfaz
  • Primitivas contextuales
  • Extendiendo primitivas

Podemos crear un enlace simple de clase usando el bind()método.
$this->app->bind('Status', \App\Repositories\StatusRepository::class);

El código anterior notifica al laravel, almacena el StatusRepositoryobjeto de clase en la Statusvariable.Podemos acceder al objeto anterior usando la variable de estado como se muestra a continuación:

$Status = app()->make('Status')->getAll();

Estamos accediendo a toda la lista de estado usando el getAll()método.

Eventos De Contenedores

Hay los siguientes eventos de contenedor que se activan cuando el objeto se ha resuelto. Puede agregar su lógica personalizada aquí. Puede escuchar este evento utilizando el método de resolución:

Publicar un comentario

0 Comentarios