2017-10-22 9 views
3

Ich installiere das spatie\laravel-backup Paket. Laut den Anweisungen muss ich nur composer require spatie\laravel-backup und das Paket sollte erkannt und automatisch installiert werden. Es sieht aus wie dies geschieht:Laravel 5.5 Autodiscovery nicht registrieren

Generating optimized autoload files 
> Illuminate\Foundation\ComposerScripts::postAutoloadDump 
> @php artisan package:discover 
Discovered Package: spatie/laravel-backup 

Aber ein Blick in /config/app.php gibt es keine Erwähnung von backup überall in den Anbietern und die erwartete /config/backup.php Konfigurationsdatei nicht gefunden wird.

Gibt es zusätzliche Befehle, die ich ausführen muss, um die automatische Erkennung abzuschließen?

Antwort

1

Aber in /config/app.php suchen gibt es keine Erwähnung von Backup überall in den Anbietern und die erwartete /config/backup.php Konfigurationsdatei nicht gefunden wird.

Laravel 5.5 ändert Ihre Konfigurationsdateien nicht, wenn es Pakete entdeckt. Wir müssen lediglich Service Provider-Einträge und Fassaden-Aliase zu config/app.php hinzufügen, wenn manuell die Dienste eines Pakets registriert.

Paket-Erkennung funktioniert durch Lesen Vendor/Composer/installed.json, um autoloadable Pakete zu finden. Anschließend speichert es eine zwischengespeicherte Manifestdatei, die die Anwendung beim Booten liest, um die Paketanbieter und Aliase zu laden (normalerweise in bootstrap/cache/packages.php).

Wir können, indem Sie diese im Cache-Paket Manifest-Datei neu zu laden:

php artisan package:discover 

Paket Entdeckung macht nicht ein Paket Vermögen veröffentlichen, wie die Konfigurationsdatei, die Sie beschreiben. Der Entwickler muss den vendor:publish Befehl explizit ausführen:

php artisan vendor:publish --provider='Spatie\Backup\BackupServiceProvider' 

Diese Einschränkung ist beabsichtigt. Laravel hat keine Möglichkeit zu wissen, ob der Entwickler die Komponenten eines Pakets veröffentlichen möchte, da Pakete in vielen Fällen optionale Komponenten enthalten und der Entwickler auswählen kann, welche veröffentlicht werden sollen.

+1

Dies bedeutet wahrscheinlich, dass Sie 'php artisan vendor: publish' ausgeben müssen, um die Konfigurationsdateien zu kopieren. – Devon

1

Führen Sie php artisan vendor:publish aus, um die Konfigurationsdatei zu veröffentlichen.