【问题标题】:Composer - autoload classes in CodeIgniter outside vendor folderComposer - 在供应商文件夹之外的 CodeIgniter 中自动加载类
【发布时间】:2017-02-22 09:09:36
【问题描述】:

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

我的目录结构:

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

查看作曲家documentation,我看到根包中有一个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/"
        }
    }
}

我的搜索将我带到了this question,但仍然没有加载这些类。我在终端上运行了composer update

【问题讨论】:

    标签: php codeigniter composer-php autoload


    【解决方案1】:

    好吧,在进一步查看之后,在根包中有一个名为classmap (documentation) 的属性。

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-20
      • 2019-03-16
      • 2015-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-25
      • 2015-08-20
      相关资源
      最近更新 更多