【发布时间】:2015-02-08 21:38:27
【问题描述】:
我正在着手开发一个新的迷你框架项目,该项目位于我机器上的本地 GIT 存储库中。我已经建立了一个测试项目,它通过 Composer 拉入本地 repo,但是自动加载器没有按预期工作(Fatal Error: Class X not found 错误)。这是我第一次在自动生成的内容之外使用自动加载(例如,使用现有框架时),尽管阅读了一遍,但我似乎无法解决这个问题。
包
为了使其正常工作,该包仅包含一个 src 目录,根目录中的 composer.json 文件顶部有一个 App.php 类。
composer.json
{
"name": "myvendor/framework",
"description": "Framework Description",
"license": "MIT",
"authors": [
{
"name": "Joe Bloggs",
"email": "joe@email.com"
}
],
"autoload": {
"psr-0": {
"Framework": "src/"
}
}
}
项目
composer.json
{
"repositories": [
{
"type": "vcs",
"url" : "../Framework"
}
],
"require": {
"myvendor/framework": "dev-master"
}
}
这成功克隆了本地 repo 并将代码添加到 vendor 目录。
命名空间也成功添加到 Composer 的autoload_namespaces.php 文件中,像这样;
供应商/作曲家/autoload_namespaces.php
'Framework' => array($vendorDir . '/myvendor/framework/src'),
当我尝试使用以下代码加载 App 类时,出现错误;
web/index.php
<?php
require_once '../vendor/autoload.php';
$app = new \Framework\App();
【问题讨论】:
标签: php composer-php autoload