我在供应商内部创建了一个可编程的安装项目。 这是我的服务提供商文件,
<?php
namespace vimuths123\gitpack;
use Illuminate\Support\ServiceProvider;
class GitpackServiceProvider extends ServiceProvider {
public function register() {
$this->app->bind('gitpack', function ($app) {
return new Gitpack;
});
}
public function boot() {
// loading the routes file
require __DIR__ . '/Http/routes.php';
// define the path for the view files
$this->loadViewsFrom(__DIR__ . '/../views', 'gitpack');
}
}
这是结构,
vendor
|
vimuths123
|-gitpack
|-src
| |-GitpackServiceProvider.php
|
|-composer.json
我已在app / config.php中添加了我的服务提供商
vimuths123\gitpack\GitpackServiceProvider::class,
和我的根composer.json我有以下代码。
"psr-4": {
"App\\": "app/",
"vimuths123\\gitpack\\" : "vendor/vimuths123/gitpack/src"
}
这是我的包编辑器文件,
{
"name": "vimuths123/gitpack",
"autoload": {
"psr-4" : {
"vimuths123\\gitpack\\" : "src"
}
},
"require": {
"composer/installers": "~1.2"
}
}
但我得到的只是这个错误,
Class&#39; vimuths123 \ gitpack \ GitpackServiceProvider&#39;找不到
有人可以帮助我,这将是很好的帮助。
答案 0 :(得分:2)
您不应手动将任何文件放入vendor/
。如果您正在开发一个库,那么它必须是作曲家可安装的库(最后安装在vendor/
中。
您的composer.json
似乎有误,尤其是vendor/vimuths123/gitpack/src
中的psr4
名称空间。由于我不打算使用vendor/vimuths123/gitpack/src
命名空间,因此这一闻闻一英里。
最后,在添加新类之后,您应该更新类加载器以让它知道:
composer dumpautoload
解决了大多数问题&#34;无法找到我的班级&#34;的问题。
修改强>
您的问题似乎存在于您的库包中,而不是使用它的项目。根据评论,您需要修改包 composer.json
。假设包使用vimuths123\gitpack
命名空间(注意,命名空间不必与包名相同 - 这是两个不同的东西)并且它的源位于src
子文件夹中(因此它将是{{1然后我将返回<project>/vendor/vimuths123/gitpack/src
部分看起来像这样:
autoload
然后"autoload": {
"psr-4" : {
"vimuths123\\gitpack\\" : "src"
}
}
。
答案 1 :(得分:-1)
运行以下artisan
命令:
php artisan optimize
然后看看是否可以通过Laravel找到该课程。