我正在使用Laravel进行项目,我创建了一个服务提供商,它位于app/services/ToolboxServiceProvider.php
,我添加了
'providers' => array(
....
'services\ToolboxServiceProvider',
);
在我的app.php配置文件中。现在加载应用程序时,它说服务提供商找不到,我知道我在提供者数组中的路径设置有问题,问题是:如何使其正确?提前谢谢。
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"require": {
"laravel/framework": "4.2.*"
},
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php"
]
},
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-update-cmd": [
"php artisan clear-compiled",
"php artisan optimize"
],
"post-create-project-cmd": [
"php artisan key:generate"
]
},
"config": {
"preferred-install": "dist"
},
"minimum-stability": "stable"
}
答案 0 :(得分:4)
您应该加入autoload
=> classmap
的{{1}}部分:
composer.json
所以看起来应该是这样的:
"app/services",
在您的提供者文件中,您应该在开头:
"autoload": {
"classmap": [
"app/commands",
"app/controllers",
"app/models",
"app/database/migrations",
"app/database/seeds",
"app/tests/TestCase.php",
"app/services",
]
},
(小写)。
在完成这些更改后,您应该运行:
<?php namespace services;
重建classmap
答案 1 :(得分:1)
在app/services
文件夹中使用类似的内容创建服务提供商,请注意namespace
:
<?php
namespace Services;
use Illuminate\Support\ServiceProvider;
class ToolboxServiceProvider extends ServiceProvider
{
//...
}
然后在providers
数组中添加'Services\ToolboxServiceProvider'
。然后在"app/services"
文件的classmap
部分添加composer.json
并转储自动加载器。
答案 2 :(得分:-1)
ToolboxServiceProvider使用什么命名空间?你有没有在composer.json文件中添加自动加载?你试过composer dump-autoload?