【发布时间】:2015-09-24 05:57:00
【问题描述】:
我正在尝试学习作曲家,但我似乎无法让自动加载器与我创建的包一起工作。它只是指出找不到该类。
我做错了什么?
索引.php:
require 'vendor/composer/autoload_psr4.php';
use packageName\core\Bootstrap;
$boot = new Bootstrap();
Bootstrap.class.php(在 /vendor/vendorName/packageName/core/ 内):
namespace packageName\core;
class Bootstrap {
...
packageName 的composer.json:
"autoload": {
"psr-4": { "packageName\\core\\": "/vendor/vendorName/packageName/core" }
}
【问题讨论】:
-
只包括 vendor/autoload.php, getcomposer.org/doc/01-basic-usage.md#autoloading
-
/vendor/...真的在您的文件系统的根级别吗?如果是相对路径而不是绝对路径,请使用"vendor/vendorName/packageName/core" -
它也不适用于 vendor/autoload.php。我认为它找不到文件。并且 /vendor/ 位于根级别。
-
Composer 推荐 vendor/packageName 用于库名称格式。我们将 ./vendor/autoloader.php 作为根类自动加载器。另外,请记住在更改类名/空格后运行 composer -o 以便重建类映射。接下来:
use vendor/packageName/className在 Bootstrap.class.php 的顶部。让我们知道发生了什么(请提供确切的错误消息)。 -
@Pheagey 问题其实已经解决了。这是我这边的相对/绝对路径问题(已接受的答案)。无论如何谢谢!
标签: php composer-php