在 Eclipse Neon PDT 上使用 Composer PSR-0 自动加载器时出现错误 "Class not found"

Error "Class not found" using Composer PSR-0 autoloader on Eclipse Neon PDT

我目前正在尝试从头开始构建一个新的 PHP 项目(在 git 存储库中),使用 Composer(这是第一次),在 Eclipse Neon PDT 上使用 Composer Eclipse Plugin and EGit.

为了从简单的开始,我首先安装了著名的库PHP Markdown Lib。我认为我没有遇到配置 require 设置的问题,因为 运行 Composer 使用以下方式正确更新依赖项:

"require" : {
    "php" : ">=5.3",
    "michelf/php-markdown" : "~1.7"
},

如 PHP Markdown Lib 文档的 Usage 部分所述,我在我的 composer.json 中设置了一个兼容 PSR-0 的自动加载器并生成了 autoload 文件:

"autoload" : {
    "psr-0" : {
        "Michelf\Markdown" : "vendor/michelf/php-markdown/Michelf"
    }
},

在我的 PHP 文件中,我简单地包含了以下内容:

$input = file_get_contents('input.md');
use Michelf\Markdown;
$output = Markdown::defaultTransform($input);

所有似乎都被 Eclipse Neon 正确识别:

  1. namespaceclass 正确地显示为 自动完成 命题(第一个屏幕截图)
  2. 库在文档大纲中显示为导入声明(第二个屏幕截图)

但是,尽管我使用这些设置进行了所有测试,页面仍然显示:

Fatal error: Class 'Michelf\Markdown' not found

我已经测试了其他公式,例如 use \Michelf\Markdown;:它同样被 Eclipse Neon 识别(自动完成功能和文档大纲,如之前的屏幕截图所示),但我仍然得到 致命错误.

为确保自动加载文件正确更新,我还执行了 CLI dump-autoload 命令。不幸的是,目前没有更多的成功。

现在,我想这个问题似乎 to be not directly related with PHP Markdown Lib,但我确实忘记了一个步骤或在我的设置中犯了一个错误,这似乎无法正确设置 PSR-0 自动加载器,即使所有这些似乎都被 Eclipse IDE.

正确检测到了

你记得在文件开头包含 composer autoload 吗?

require __DIR__ . '/vendor/autoload.php';