Composer PSR4自动加载不适用于项目克隆

时间:2018-07-29 13:26:22

标签: php composer-php

我有一个正在工作的项目,我只是克隆了存储库并先运行composer install然后运行composer dumpautoload -o,但是该项目看不到我的课程。

compose.json

"autoload": {
        "psr-4":{
            "App\\": "app",
            "Framework\\" : "framework"
        },
        "files": [
            "helpers/global.php"
        ]
    },

...

index.php

<?php
require_once __DIR__ .'/../vendor/autoload.php';

$container = new League\Container\Container;

// Auto wiring, container will load type hinted dependencies into controllers
$container->delegate(new \League\Container\ReflectionContainer());

// Get the config provider so we can get all the other providers from the config
$container->addServiceProvider(new \App\Providers\ConfigServiceProvider());

这是代码失败的地方:

Class 'App\Providers\ConfigServiceProvider' not found

configserviceprovider.php

<?php
namespace App\Providers;

use Framework\Config\Config;
use Framework\Config\Loaders\ArrayLoader;
use League\Container\ServiceProvider\AbstractServiceProvider;

class ConfigServiceProvider extends AbstractServiceProvider
{

    protected $provides = [
        'config'
    ];

    public function register()
    {

        $this->getContainer()->share('config', function(){

            $loader = new ArrayLoader([
                'app' => base_path('config/app.php'),
                'cache' => base_path('config/cache.php')
            ]);

            return (new Config)->load([$loader]);

        });

    }

}

我的文件夹结构如下:

  • 应用

    • 控制器

    • 提供商

      • ConfigServiceProvider.php
    • 视图

  • 公开

    • index.php

这段代码都可以在另一个项目上工作,所以我想我缺少使作曲家看到这些类的命令了吗?

0 个答案:

没有答案