为我的 laravel 应用程序创建一个包(购物车)。得到一个服务提供者——CartServiceProvider
,属于命名空间Alexxosipov\Cart
。
<?php
namespace Alexxosipov\Cart;
use Illuminate\Support\ServiceProvider;
use Alexxosipov\Cart\Cart as Cart;
class CartServiceProvider extends ServiceProvider {
public function boot() {
}
public function register() {
$this->app->singleton('cart', function() {
return new Cart();
});
}
}
然后,我在根 composer.json
中创建新的命名空间:
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/",
"Alexxosipov\\Сart\\": "packages/alexxosipov/cart/src"
}
}
然后我将它添加到 app.php
中的数组 providers
中:
Alexxosipov\Cart\CartServiceProvider::类,
并制作composer dump-autoload
。但是我仍然有一个错误:
FatalErrorException in ProviderRepository.php line 146:
Class 'Alexxosipov\Cart\CartServiceProvider' not found
我哪里错了?
最佳答案
尝试:
"Alexxosipov\\": "packages/alexxosipov/"
代替:
"Alexxosipov\\Сart\\": "packages/alexxosipov/cart/"
然后...将您的 serviceProvider 类保存在“packages/alexxosipov/cart/”中,运行 compose dumpautoload
命令并更新您的服务提供商:
<?php
namespace Alexxosipov\Cart;
use Illuminate\Support\ServiceProvider;
use Alexxosipov\Cart\Cart as Cart;
class CartServiceProvider extends ServiceProvider {
public function boot() {}
public function register() {
$this->app->singleton('cart', function() {
return new Cart();
});
}
}
这一定能正常工作。
关于php - Laravel 没有看到我的包裹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48306876/