Novedades de Laravel 5.5

En Laravel 5.5 instalar componentes o paquetes de terceros en tus aplicaciones será más rápido y sencillo gracias a está nueva característica Package Discovery o detección automática de paquetes. En esta lección agregaremos este nuevo feature al componente Styde\Html, así que podrás ver este nuevo feature en acción en un componente real de Laravel.

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Notas

Por Clemir Rondón.

En esta lección hacemos uso de repositorios locales con Composer como explicamos en el Curso de creación de componentes para PHP y Laravel donde te enseñamos desde lo necesario de la programación orientada a objetos como inyección de dependencias, Facades, etc. hasta la creación del componente y su publicación en Packagist.org.

Si has trabajado con paquetes de terceros en Laravel sabrás que los pasos comunes para agregar cada uno en tu aplicación son:

  1. Instalar con Composer, por ejemplo: composer requiere vendor/package
  2. Registrar el service provider en el array providers del archivo config/app.php
  3. Registrar los alias del paquete en el array aliases en el mismo archivo config/app.php

Pues ahora en Laravel 5.5 si el desarrollador de un paquete define en el archivo composer.json la detección automática del paquete ya no tendrás que hacer estos pasos.  Es decir, esta nueva característica está destinada principalmente a los desarrolladores de paquetes que nos darán la facilidad para tan solo ejecutar la instalación con Composer y automáticamente el service provider y alias (si aplica) se registrarían en el archivo config/app.php

Si has desarrollado un paquete para Laravel puedes entonces agregar en el composer.json:

"extra": {
    "laravel": {
        "providers": [
            "Namespace\\De\\La\\Clase\\ServiceProvider"
        ],
        "aliases": {
            "Alias": "Namespace\\Del\\Facade"
        }
    }
},

y estarás preparando tu paquete para que sea detectado las aplicaciones usando Package Discovery.

Si no quieres que en tu aplicación se detecte automáticamente algún componente debes agregar en el archivo composer.json de la aplicación el nombre de cada paquete a excluir:

"extra": {
    "laravel": {
        "dont-discover": [
            "vendor-paquete/nombre-paquete"
        ]
    }
},

En caso de no querer usar en absoluto está característica simplemente coloca en tu composer.json:

"extra": {
    "laravel": {
        "dont-discover": [
            "*"
        ]
    }
},

Puedes revisar cómo quedó el archivo composer.json del componente Styde\Html, luego de añadir la opción en el commit: f51138 y también puedes ver el repositorio de la aplicación que se usa para ejecutar las pruebas de integración del paquete: https://github.com/StydeNet/html-integration-tests.

Puedes ver la documentación oficial de esta nueva funcionalidad en Package Discovery

Material relacionado

Únete a nuestra comunidad en Discord y comparte con los usuarios y autores de Styde, 100% gratis.

Únete hoy

Regístrate hoy en Styde y obtén acceso a todo nuestro contenido.

Lección anterior Reglas de validación personalizadas con el nuevo comando make:rule en Laravel 5.5 Lección siguiente Mejoras a vendor:publish en Laravel 5.5