Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 包:发现找不到我的服务提供商_Php_Laravel_Composer Php - Fatal编程技术网

Php 包:发现找不到我的服务提供商

Php 包:发现找不到我的服务提供商,php,laravel,composer-php,Php,Laravel,Composer Php,我已经创建了一个自定义的Laravel包。它托管在一个私有存储库中 当我尝试在Laravel应用程序中安装软件包时,如下所示: composer require memberportal/congress-models 我得到这个错误: In ProviderRepository.php line 208: Class 'Memberportal\CongressesModels\CMServiceProvider' not found Script @php artisan p

我已经创建了一个自定义的Laravel包。它托管在一个私有存储库中

当我尝试在Laravel应用程序中安装软件包时,如下所示:

composer require memberportal/congress-models
我得到这个错误:

In ProviderRepository.php line 208:

  Class 'Memberportal\CongressesModels\CMServiceProvider' not found  


Script @php artisan package:discover --ansi handling the post-autoload-dump event returned with error code 1

Installation failed, reverting ./composer.json to its original content.
我已经仔细检查了上百次了,但是我不知道为什么他没有找到类
CMServiceProvider.php

我是否需要在
composer.json
中的其他位置指定提供程序

这是我的软件包中的
composer.json
的内容:

{
    "name": "memberportal/congress-models",
    "description": "Takes care of the models between API and client",
    "type": "metapackage",
    "authors": [
        {
            "name": "My name",
            "email": "my@email.com"
        }
    ],
    "version" : "1.0",
    "minimum-stability": "stable",
    "require": {
        "laracasts/presenter": "^0.2.2"
    },
    "require-dev": {
        "orchestra/testbench": "^4.0"
    },
    "autoload": {
        "psr-4": {
          "Memberportal\\CongressesModels\\": "src"
        }
    },
    "autoload-dev": {
      "psr-4": {
          "Memberportal\\CongressesModels\\Tests\\": "tests"
        }
    },
    "extra": {
        "laravel": {
            "providers": [
                "Memberportal\\CongressesModels\\CMServiceProvider"
            ]
        }
    }
}
这是文件夹结构:

这是
CMServiceProvider.php
的内容:

<?php

namespace Memberportal\CongressesModels;

use Illuminate\Support\ServiceProvider;

class CMServiceProvider extends ServiceProvider
{
    /**
     * Register services.
     *
     * @return void
     */
    public function register()
    {
    }

    /**
     * Bootstrap services.
     *
     * @return void
     */
    public function boot()
    {
        $this->loadMigrationsFrom(__DIR__ . '/../database/migrations');
    }
}

由于要安装Laravel软件包,因此软件包类型应为
软件包
metapackage
是一个

简言之,改变

"type": "metapackage",


当composer需要软件包时,Laravel将通过自动发现找到服务提供商。

您是否尝试了“composer update”命令?@MehediHassan我为什么要这样做<代码>编写器更新
可以工作,但我正在尝试安装新的专用软件包。有时编写器无法跟踪/自动加载依赖项。这就是为什么有时候,你需要重新更新它。这基本上是在团队中工作时发生的。您的队友可能会更改依赖项,而您会添加一些。在那里,您可能需要更新编写器
"type": "package",