Laravel 5.5 автообнаружение не регистрируется
Я устанавливаю пакет spatie\laravel-backup
. Согласно инструкциям, мне просто нужно composer require spatie\laravel-backup
, и пакет должен быть распознан и автоматически установлен. Похоже, что это происходит:
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover
Discovered Package: spatie/laravel-backup
Но, заглянув в /config/app.php
, нигде в поставщиках нет упоминания о backup
, и ожидаемый файл конфигурации /config/backup.php
не найден.
Есть ли какие-либо дополнительные команды, которые мне нужно выполнить для завершения автоматического обнаружения?
2 answers
Но заглядывая в/config/app.php нигде в источниках нет упоминания о резервном копировании, и ожидаемый/config/backup.php файл конфигурации не найден.
Laravel 5.5 не изменяет ваши файлы конфигурации при обнаружении пакетов. Нам нужно только добавить записи поставщика услуг и псевдонимы фасада в config/app.php при ручной регистрации услуг пакета.
Обнаружение пакетов выполняется путем чтения поставщик/композитор/установленный.json для поиска автоматически загружаемых пакетов. Затем он сохраняет кэшированный файл манифеста, который приложение считывает при загрузке, чтобы загрузить поставщиков пакетов и псевдонимы (обычно в bootstrap/cache/packages.php).
Мы можем перезагрузить этот кэшированный файл манифеста пакета, выполнив:
php artisan package:discover
Обнаружение пакетов не публикует ресурсы пакета, такие как файл конфигурации, который вы описываете. Разработчик должен явно запустить vendor:publish
команда:
php artisan vendor:publish --provider='Spatie\Backup\BackupServiceProvider'
Это ограничение является преднамеренным. У Laravel нет возможности узнать, хочет ли разработчик публиковать компоненты пакета, потому что во многих случаях пакеты предоставляют дополнительные компоненты, и разработчик может выбрать, какие из них публиковать.
Запустите php artisan vendor:publish
, чтобы опубликовать файл конфигурации.