composer php laravel laravel-5 laravel-5.1

php - composer - ¿Cómo instalar correctamente el paquete en Laravel?



laravel-5 laravel-5.1 (2)

El problema aquí es que hay un comando de php artisan clear-compiled se configura para ejecutarse antes del proceso de actualización en su archivo composer.json . Y dado que artisan es una parte integral de la aplicación Laravel, se quejará cuando haya algún problema con el código de la aplicación. Ya que tiene una referencia a una clase que aún no está presente, RuntimeException esa RuntimeException . Puede solucionarlo moviendo ese comando de la lista pre-update-cmd a post-update-cmd en su composer.json .

Así que cambia esto:

"scripts": { ... "pre-update-cmd": [ "php artisan clear-compiled" ], "post-update-cmd": [ "php artisan optimize" ] },

A esto:

"scripts": { ... "pre-update-cmd": [ ], "post-update-cmd": [ "php artisan clear-compiled", "php artisan optimize" ] },

Ahora el comando de clear-compiled se ejecutará después del proceso de actualización, cuando esté presente la clase LaravelFacebookSdkServiceProvider la que se hace referencia, por lo que no habrá más errores.

Recientemente, instalé el paquete LaravelFacebookSdk .

Instalar

Actualizo mi composer.json agregando

"sammyk/laravel-facebook-sdk": "~3.0"

Entonces, corro la composer update

Proveedor de servicio

En mi /config/app.php , agrego el LaravelFacebookSdkServiceProvider a la matriz de proveedores.

''providers'' => [ SammyK/LaravelFacebookSdk/LaravelFacebookSdkServiceProvider::class, ];

Todo funciona muy bien. Entonces, lo empujé a mi repositorio.

¡Aquí viene el problema!

El segundo desarrollador que entró hizo una composer update git pull y Run composer update

Él recibirá un error

SammyK/LaravelFacebookSdk/LaravelFacebookSdkServiceProvider::class,

es indefinido. porque, declaré eso en mi /config/app.php bajo mi matriz de proveedores.

Tiene que ir a comentar esa línea y ejecutar primero la composer update del composer update . Después de que todo se haya instalado correctamente, luego vuelva a entrar y descomente esa línea nuevamente.

¿Deberá hacerlo cada vez que otro desarrollador instale un nuevo paquete?

Me estoy perdiendo de algo ?

Por favor, amablemente avisar si hice algo mal.


En lugar de ejecutar composer update ejecuta composer install . No es necesario cambiar los comandos en su archivo json.

Cuando ejecute la composer update , pasará por todos sus paquetes y se actualizará a la versión menor más reciente basada en su composer.json y luego actualizará el composer.lock. Esto no es lo que quieres.

Cuando ejecute la composer install , se asegurará de que todo el archivo json esté instalado, incluidos los paquetes que acaba de agregar. Esto es lo que buscas.