我一直在创建Laravel package(中间件)。我的文件夹结构如下所示:
laravel-censor/
config/
sensor.php
src/
CensorMiddleware.php
LaravelCensorServiceProvider.php
composer.json
composer.json
的内容是:
{
"name": "kamranahmedse/laravel-censor",
...
...
"require": {
"php" : ">=5.4.0",
"laravel/framework": "^5.1.11"
},
"autoload": {
"psr-4": {
"KamranAhmed\\LaravelCensor\\": "src/"
}
},
"minimum-stability": "stable"
}
我已将其发布到packagist,可以通过github找到。现在安装后
composer require kamranahmedse/laravel-censor
当我将软件包的服务提供商添加到providers
config/app.php
数组时
KamranAhmed\LaravelCensor\LaravelCensorServiceProvider::class
然后运行
php artisan vendor:publish
无法找到服务提供程序类并抛出未找到类的异常。任何人都可以指出我在这里做错了什么吗?为什么作曲家不能自动加载这个类?
我现在已经研究了一个多小时了,无法弄清楚为什么作曲家没有自动加载这个课程的问题。此外,我已经检查过,名称空间和类名都是正确的:
# LaravelCensorServiceProvider.php
namespace KamranAhmed\LaravelCensor;
...
class LaravelCensorServiceProvider extends ServiceProvider
{ ... }
原来,作曲家有一些缓存。清除作曲家缓存php artisan clear-compiled
后运行composer clear
就可以了。
答案 0 :(得分:0)
我可以安装您的软件包并执行php artisan vendor:publish
而不会出现任何问题,您是否尝试过composer dumpautoload
?和php artisan clear-compiled
?