我制作了一个名为nickdekruijk/larapages
的Composer包。我第一次做composer required nickdekruijk/larapages
时工作正常。但在我将服务提供商添加到config/app.php
后,我无法再运行composer update
:
$ composer update > php artisan clear-compiled Loading composer repositories with package information Updating dependencies (including require-dev) Nothing to install or update Generating autoload files > php artisan optimize [Symfony\Component\Debug\Exception\FatalErrorException] Class 'NickDeKruijk\LaraPages\LaraPagesServiceProvider' not found
到目前为止,唯一的解决方法是从config/app.php
删除服务提供商(或评论该行),运行composer update
,然后再次将其取消(取消注释),这非常烦人。难道我做错了什么?我可能需要修理我的包吗?
答案 0 :(得分:0)
如果已安装软件包,则不应存在问题。您确定包的名称空间没有问题,并且该类实际存在吗?
作为一种解决方法,有助于解决服务提供商尚未实际可用的任何相关问题,您可以运行Composer而不是运行Laravel的脚本(导致错误)。
composer update --no-scripts
答案 1 :(得分:0)
我想我修好了! 问题是自动加载器。 首先,当我将文件从src / *移动到src / NickDeKruijk / LaraPages / *作曲家更新工作正常。但是我不想永久地移动文件(搞砸了我的git repo)所以我把它添加到了包composer.json中:
"autoload": {
"psr-4": {
"NickDeKruijk\\LaraPages\\": "src/"
}
}
现在我可以运行作曲家更新了!