我在以下路径中有一个软件包: packages / mypackage / demo
我的服务提供商位于
packages/mypackage/demo/src/vis/MyserviceProvider.php
并且我在composer.json
中添加为:
"psr-4": {
"Custom\\MyPackage\\": "packages/mypackage/demo/src/vis/",
"App\\": "app/"
}
跑composer update
跑composer dump-autoload -o
并在app.php
中添加了服务提供商:
Custom\MyPackage\MyserviceProvider::class,
但出现以下错误:
找不到MyserviceProvider
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
文件夹中软件包的路径如下所示: packages / mypackage / demo / src
对于每个Laravel应用程序,每个新应用程序的根目录中都有一个主composer.json
文件。这是您的主要应用程序编写器文件,这是我们定义所有应用程序依赖项的地方。
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/",
"Mypackage\\Demo\\": "packages/mypackage/demo/src"
}
},
然后,我们需要作曲家来运行自动加载器并自动加载程序包。为此,我们运行以下命令:
composer dump-autoload
添加我们的包裹服务提供商。
服务提供商是我们包装中的主要条目。这是我们的包被加载或引导的地方。在我们应用程序的根目录中,让我们通过命令行使用工匠命令创建ServiceProvider:
php artisan make:provider MyServiceProvider
这将在app / Providers / MyServiceProvider.php中创建一个新文件
让我们将该文件移动到我们的package文件夹中,使其位于packages/mypackage/demo/src/MyServiceProvider.php
注意::不要忘记将您的命名空间更改为MyServiceProvider.php文件中的Vendor \ Package_name 示例:
<?php
namespace Mypackage\Demo;
use Illuminate\Support\ServiceProvider;
class MyServiceProvider extends ServiceProvider
{ }
接下来,我们需要在config/app.php
内的providers[]
中添加新的服务提供商
数组:
'providers' => [
/*
* Laravel Framework Service Providers...
*/
Illuminate\Auth\AuthServiceProvider::class,
//.. Other providers
Mypackage\Demo\MyServiceProvider.php::class,
],
现在,我们的服务提供商已加载,我们的自定义软件包已准备就绪,可以使用。