Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/9.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 Composer下载软件包并放入供应商地图,但服务提供商没有';我认不出来了,拉维_Php_Laravel_Composer Php_Laravel 6 - Fatal编程技术网

Php Composer下载软件包并放入供应商地图,但服务提供商没有';我认不出来了,拉维

Php Composer下载软件包并放入供应商地图,但服务提供商没有';我认不出来了,拉维,php,laravel,composer-php,laravel-6,Php,Laravel,Composer Php,Laravel 6,我从git派生了一个api处理程序,我需要更新它以使其与laravel 6()兼容,但我不断收到编写器错误 因此,当我运行composerupdate时,它会从git安装包,并将其正确地放在vendor文件夹中。然后我将类添加到config/app.php中,如下所示 'providers' => [ Name\ApiHandler\ApiHandlerServiceProvider::class, ], 什么会把这个错误抛到拉威尔身上 In ProviderRepo

我从git派生了一个api处理程序,我需要更新它以使其与laravel 6()兼容,但我不断收到编写器错误

因此,当我运行
composerupdate
时,它会从git安装包,并将其正确地放在vendor文件夹中。然后我将类添加到
config/app.php
中,如下所示

'providers'       => [
    Name\ApiHandler\ApiHandlerServiceProvider::class,
],
什么会把这个错误抛到拉威尔身上

In ProviderRepository.php line 208:
Class 'Name\ApiHandler\ApiHandlerServiceProvider' not found
到目前为止,我已经尝试:

  • composer清除缓存
  • rm-rf.cache/composer/*
  • 清除引导生成器
  • 删除
    composer.lock
  • 删除
    供应商
  • 然后在
    composer更新之后
    ,但它一直抛出错误。但是,当我在我的编辑器中,进入
    config/app.php
    并单击
    Name\apidhandler\apidhandlerserviceprovider::class时,
    按住ctrl键,它会找到类并转到供应商映射,这样我的想法会显示该类已正确导入

    这就是laravel项目的composer.json的外观

    "repositories": [
    {
      "type":"package",
      "package": {
        "name": "name/laravel-api-handler",
        "version":"dev-laravel-6",
        "source": {
          "url": "https://github.com/name/laravel-api-handler",
          "type": "git",
          "reference":"branch name"
        }
      }
    }
    ],
    "require": {
      "name/laravel-api-handler": "dev-laravel-6",
    },
    
    api处理程序composer.json

     "autoload": {
        "psr-4": {
            "name\\ApiHandler\\": "src"
        }
    },
    "extra": {
        "laravel": {
            "providers": [
                "name\\ApiHandler\\ApiHandlerServiceProvider"
            ]
        }
    },
    
    映射结构为
    vendor/name/laravel api handler/src

    此外,在运行
    Composer update
    Composer install

    我是不是因为不知道出了什么问题而错过了什么

    • 删除
      bootstrap/cache/config.php
      文件。然后再跑
    • 逐个运行下面的命令

      composer dump-autoload
      
      php update
      
      • 要解决它

        • 删除
          bootstrap/cache/config.php
          文件。然后再跑
        • 逐个运行下面的命令

          composer dump-autoload
          
          php update
          

        将ApiHandler facade导入到类中:-

        使用ApiHandler\Facades\ApiHandlerServiceProvider


        在顶部

        将ApiHandler facade导入到类中:-

        使用ApiHandler\Facades\ApiHandlerServiceProvider


        在顶部

        尝试删除/重命名您的供应商文件夹。然后执行
        composer安装
        。那请再查一下。如果不起作用,请执行
        composer更新
        。不确定引擎盖下发生了什么,但在我的情况下,
        composer update
        成功了。

        尝试删除/重命名您的供应商文件夹。然后执行
        composer安装
        。那请再查一下。如果不起作用,请执行
        composer更新
        。不确定在引擎盖下发生了什么,但在我的案例中,
        composer update
        起到了作用。

        因此,在研究将自定义包编辑到项目中之后,composer显然不会自动加载
        “type”:“package”
        文档中没有提到的内容

        因此,在研究将自定义包编辑到项目中之后,composer显然不会自动加载
        “type”:“package”
        文档中没有提到的内容

        正如我所看到的,这个软件包已经过时,而且最近没有更新。更好的办法是避免使用此包。是的,我知道为什么我在这种情况下分叉了包并对其进行了更新,但我无法让composer使用WorkID。您是否将包中所有文件的名称空间更改为新名称空间?因此,
        Name\ApiHandler\ApiHandlerServiceProvider
        实际上在
        Name\ApiHandler
        命名空间中,而不是在旧命名空间中。这可能是因为它根本没有自动上膛。我很确定你可以做
        composer dumpauto-vvv
        来获取更多关于加载内容的详细信息。它读取composer.json文件,但没有加载到包中。我还重新检查了所有名称空间是否正确替换了供应商中的所有文件都具有名称空间
        name\apidhandler
        只有
        Name\ApiHandler\ApiHandlerServiceProvider
        config/app,php
        中,它是这样设置的吗?我的想法表明它正确地进入了供应商地图。正如我所看到的,这个包已经过时,而且最近没有更新。更好的办法是避免使用此包。是的,我知道为什么我在这种情况下分叉了包并对其进行了更新,但我无法让composer使用WorkID。您是否将包中所有文件的名称空间更改为新名称空间?因此,
        Name\ApiHandler\ApiHandlerServiceProvider
        实际上在
        Name\ApiHandler
        命名空间中,而不是在旧命名空间中。这可能是因为它根本没有自动上膛。我很确定你可以做
        composer dumpauto-vvv
        来获取更多关于加载内容的详细信息。它读取composer.json文件,但没有加载到包中。我还重新检查了所有名称空间是否正确替换了供应商中的所有文件都具有名称空间
        name\apidhandler
        只有
        config/app中的
        Name\ApiHandler\ApiHandlerServiceProvider
        ,php
        是这样设置的吗?我的想法表明,在执行
        rm-rf引导/cache/*
        并运行
        composer dump autoload之后,它会在ProviderRepository.php第208行中返回一个错误
        未找到类'Name\ApiHandler\ApiHandlerServiceProvider'
        rm-rf bootstrap/cache/*
        然后运行
        composer dump autoload
        在ProviderRepository.php第208行返回一个错误
        未找到Class'Name\apidhandler\apidhandlerserviceprovider',只是laravel provider找不到服务profider,因为我假设composer没有将它们加载到自动加载中,这就是laravel在导入到类中的服务profiderit中找不到类的原因,它可以识别并找到该类,这只是因为laravel提供者找不到服务profider,因为我假设composer没有将它们加载到自动加载中,而我使用了它