我正在安装 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
未找到配置文件。
是否需要发出任何其他命令来完成自动发现?
最佳答案
But looking in /config/app.php there's no mention of backup anywhere in the providers, and the expected /config/backup.php configuration file isn't found.
Laravel 5.5 在发现包时不会修改你的配置文件。当手动注册包的服务时,我们只需要将服务提供者条目和外观别名添加到config/app.php。
包发现通过读取 vendor/composer/installed.json 来查找可自动加载的包。然后它保存一个缓存的 list 文件,应用程序在启动时读取该文件以加载包提供程序和别名(通常在 bootstrap/cache/packages.php 中)。
我们可以通过运行重新加载这个缓存的包 list 文件:
php artisan package:discover
包发现不发布包的 Assets ,例如您描述的配置文件。开发人员必须显式运行 vendor:publish
命令:
php artisan vendor:publish --provider='Spatie\Backup\BackupServiceProvider'
此限制是设计使然。 Laravel 无法知道开发者是否想要发布一个包的组件,因为在很多情况下,包提供可选组件,开发者可以选择发布哪些组件。
关于php - Laravel 5.5 自动发现未注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46877662/