Composer不会自动加载包

时间:2016-02-27 12:30:42

标签: php frameworks composer-php autoload

我目前正在开发一个框架,但我无法弄清楚如何设置自动加载。首先,我创建了一个包含示例类和composer.json的包。我通过以下方式自动加载了该示例类:

"autoload": {
    "classmap": [
      "libs/"
    ]
}

我已经检查过/vendor/mypackage/vendor/composer/autoload_classmap.php并确认包的自动加载器工作正常。但问题是我无法从主应用程序到达该程序包的类,除非我直接包含该程序包的autoload.php。

更新

/vendor/foo/mypackage/composer.json

"autoload": {
  "psr-4": {
     "Http\\": "libs/"
   }
}

/vendor/foo/mypackage/libs/Request.php

namespace Http;
class Request {}

2 个答案:

答案 0 :(得分:1)

首先,使用psr-0psr-4自动加载配置通常会更好。使用classmap,每次添加新类或重命名时都必须缩小自动加载器。

您始终需要使用require 'vendor/autoload.php';包含Composer自动加载器。添加此类require语句的最佳位置在前端控制器文件中。

答案 1 :(得分:1)

我自己解决了。每当我更改pacakge的composer.json时,我就不得不重新安装包。