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.