Wie man richtig installieren Paket in Laravel?
Kürzlich installierte ich das Paket LaravelFacebookSdk
.
Installieren
Update ich meine composer.json
durch hinzufügen
"sammyk/laravel-facebook-sdk": "~3.0"
Dann Laufe ich composer update
Dienstleister
In meinem /config/app.php
füge ich die LaravelFacebookSdkServiceProvider
zu den Anbietern array.
'providers' => [
SammyK\LaravelFacebookSdk\LaravelFacebookSdkServiceProvider::class,
];
Alles Super funktioniert. Dann schob ich es auf meine Repositorys.
Hier kommt das Problem !
Zweiten Entwickler kommen in der Tat eine git pull
und führen composer update
Wird er eine Fehlermeldung erhalten,
SammyK\LaravelFacebookSdk\LaravelFacebookSdkServiceProvider::class,
ist undefine. da erklärte ich, dass meine /config/app.php
unter meinen Provider array.
Er gehen Kommentar aus, die Linie, und führen Sie die composer update
ersten. Nachdem alles erfolgreich installiert wurde, dann gehen Sie zurück in und kommentieren, dass die Linie wieder zurück.
Wird andere Entwickler zu tun haben, diese jedes mal, die wir installiert ein neues Paket ?
Bin ich hier etwas fehlt ?
Bitte beraten, wenn ich etwas getan habe falsch.
- Er sollte nicht nötig sein, um kommentieren Sie die Zeile, aber er WIRD laufen müssen, composer-update, wenn Sie hinzufügen ein neues Paket.
- Wenn er laufen composer-update, bekam er die Fehlermeldung.
- ja.Ich glaube, dass ist das, was jeder tut. Kommentar,update dann kommentieren.
- Dankeschön. Jetzt weiß ich, dass zumindest ich nichts falsch machen hier.
- Sollten Sie nicht laufen composer update zur Installation neuer Pakete. Sollten Sie das Paket an den Komponisten.json führen
composer install
. dabei ein install anstelle von update wird dieses Problem beheben, ohne die Bearbeitung der json-Datei an alle. @Arunu nicht kommentieren/einkommentieren erforderlich ist.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem hier ist, dass es eine
php artisan clear-compiled
Befehl konfiguriert ist, führen Sie vor dem update-Vorgang in Ihremcomposer.json
- Datei. Und daartisan
ist ein integraler Teil des Laravel-app, es wird sich beschweren, wenn es etwas falsch mit der app-code. Da haben Sie einen Verweis auf eine Klasse, die ist noch nicht vorhanden, wird es ausgespuckt, dassRuntimeException
. Sie können das Problem beheben, dass durch das verschieben dieses Befehls von derpre-update-cmd
Liste zupost-update-cmd
Liste, die in Ihrercomposer.json
.So ändern Sie diese:
Zu diesem:
Nun die
clear-compiled
Befehl wird ausgeführt, nach der Aktualisierung, wenn sich das referenzierteLaravelFacebookSdkServiceProvider
Klasse vorhanden ist, so dass kein Fehler mehr.composer.json
undapp.php
dann wird es geschoben, um einen git-server. Dann einen anderen Entwickler zu ziehen, der code wird aber ausgeführt werden müssencomposer update
um die Bibliothek zu installieren, umvendor
jedoch an dieser Stelle dieapp.php
Konfiguration ist bereits vorhanden, so ist das, was Sie vorgeschlagen sind, wird nur Arbeit für den Entwickler, der zunächst installiert das Paket. Alle anderen devs ziehen, dass der neue code wird die aktualisierte$providers
array, aber keinen code für die Bibliothek.composer update
. Sie laufen sollcomposer install
. Komponist update durch zu gehen und alle Pakete aktualisieren, die ist nicht, was Sie wollen, wenn Sie gerade erst Ihre Installation up-to-date mit dem repoupdate
, wenn in der Tat die richtige Aktion ist hier in der Tatinstall
.Anstatt
composer update
laufencomposer install
. Es gibt keine Notwendigkeit zu ändern, die Befehle in der json-Datei.Beim ausführen
composer update
es wird gehen Sie durch alle Ihre Pakete und aktualisieren Sie auf die neueste minor-version, basierend auf Ihre Komponisten.json aktualisieren Sie dann die Komponisten.lock. Dies ist nicht, was Sie wollen.Beim ausführen
composer install
es wird sicherstellen, dass alles in Ihrer json-Datei installiert wird, einschließlich der Pakete, die Sie gerade Hinzugefügt haben. Dies ist, was Sie suchen.