Composer -自动加载CodeIgniter中供应商文件夹外的类


Composer - autoload classes in CodeIgniter outside vendor folder

我一直在与composer一起建立一个CodeIgniter项目。我想包括php类存储在vendor文件夹外的文件中-在shared文件夹中。

我的目录结构:

/
  --application/
  --shared/
    -application/
       -class1.php
       -class2.php
       -class3.php
    -base/
       -classb1.php
  --vendor/
  --composer.json
  --composer.lock

查看编写器文档,我看到根包中有一个autoload属性,我试图用它来加载shared目录中的类。这些类没有命名空间。

我的composer.json文件如下:

{
    "description" : "The CodeIgniter Application with Composer",
    "require": {
        "php": ">=5.3.2",
        "codeigniter/framework": "3.1.*"
    },
    "require-dev": {
        "mikey179/vfsStream": "1.1.*"
    },
    "autoload":{
       "psr-0":{
           "":"shared/application/",
           "":"shared/base/",
           "":"shared/data/"
        }
    }
}

我的搜索让我找到了这个问题,但是类仍然没有被加载。我已经在终端上运行了composer update

仔细观察后,在根包中有一个名为classmap (documentation)的属性。

"autoload":{
    "classmap":["shared/application/","shared/base/", "shared/data/"]
}

这将加载文件夹中所有需要的文件。