Colas de Laravel: Inyección de dependencia

[vc_row el_class=”blog-info”][vc_column][vc_single_image source=”featured_image” img_size=”full” style=”vc_box_rounded”][vc_empty_space height=”40px”][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text el_class=”font-weight-bold”]

Inyección de dependencia de colas de Laravel

[/vc_column_text][vc_empty_space height=”40px”][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][vc_row_inner][vc_column_inner width=”1/6″][/vc_column_inner][vc_column_inner width=”2/3″][vc_column_text]


Lo primero que debemos saber sobre las colas de Laravel es que la inyección de dependencia no puede ocurrir en el constructor y ocurre en el nivel del método de manejo.

Cuando el trabajo está siendo procesado por la cola, se invoca el método handle y podemos escribir dependencias de sugerencia en el método del trabajo y el contenedor de servicios de Laravel inyecta automáticamente estas dependencias.

Nota: Si desea controlar esto completamente, puede ir a App \ Providers \ AppServiceProvider, en el método de arranque, y usar el método bindMethod. BindMethod acepta una devolución de llamada que recibe el trabajo y el contenedor.

Dentro de esta devolución de llamada, puede invocar el método handle como desee.


La molestia de la inyección del mango

Cuando inyectamos las clases a través del método handle, no las definimos como propiedades de clase, por lo tanto, cuando las necesitemos en otras funciones dentro del Trabajo (considerando que se volverá sustancialmente complejo y grande y su lógica se dividirá en múltiples métodos) tendremos para pasarlos como parámetros a dichas funciones.

Y tengo una manera de evitar esto y mantener su código un poco más ordenado.

Y de la misma manera, no necesitamos pasar nada como parámetros para cualquier cantidad de funciones que tenga.


Nota: He estado lidiando con trabajos con cientos de líneas últimamente y esto me ha estado molestando inicialmente, esto me ha ayudado, ¡así que espero que también te ayude a ti!

[/vc_column_text][/vc_column_inner][vc_column_inner width=”1/6″][/vc_column_inner][/vc_row_inner][/vc_column][/vc_row][vc_row el_class=”social-info”][vc_column width=”1/6″][/vc_column][vc_column width=”2/3″][vc_row_inner][vc_column_inner width=”1/2″][vc_column_text][social_share_button themes=’theme1′][/vc_column_text][/vc_column_inner][vc_column_inner el_class=”youtube-inner-col” width=”1/2″][vc_column_text][likebtn theme=”youtube” lang=”auto” show_like_label=”0″ white_label=”1″ alignment=”right”][/vc_column_text][/vc_column_inner][/vc_row_inner][vc_row_inner el_class=”social-info-inner”][vc_column_inner width=”1/4″][vc_single_image image=”921″][/vc_column_inner][vc_column_inner width=”3/4″][vc_column_text]

Diego Pacheco

Ingeniero en Sitemas, MBA (Babson College). Desarrollador PHP/Java/JavaScript. Fundador & CEO de EpicStudio. Entusiasta de las tecnologías web (JavaScript, Vue, Laravel, AWS, Docker) Viajes, Negocios, Surf y Growth.[/vc_column_text][asvc_list_item icon_fontawesome=”fa fa-calendar-o” icon_size=”14px”]Programar una reunión[/asvc_list_item][/vc_column_inner][/vc_row_inner][/vc_column][vc_column width=”1/6″][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]

Recent Post

[/vc_column_text][lvca_posts_carousel posts_query=”size:3|order_by:rand|post_type:post” image_linkable=”true” image_size=”full” taxonomy_chosen=”post_tag” display_title=”true” display_post_date=”true” display_summary=”true” autoplay_speed=”3000″ animation_speed=”300″ display_columns=”3″ scroll_columns=”3″ gutter=”3″ tablet_display_columns=”2″ tablet_scroll_columns=”2″ tablet_gutter=”3″ tablet_width=”800″ mobile_display_columns=”1″ mobile_scroll_columns=”1″ mobile_gutter=”3″ mobile_width=”480″][vc_empty_space height=”20px”][/vc_column][/vc_row]