【问题标题】:Error "Class not found" using Composer PSR-0 autoloader on Eclipse Neon PDT在 Eclipse Neon PDT 上使用 Composer PSR-0 自动加载器时出现“找不到类”错误
【发布时间】:2017-08-01 15:42:37
【问题描述】:

我目前正在尝试使用 Composer(第一次)在 Eclipse Neon PDT 上使用 Composer Eclipse PluginEGit 从头开始​​构建一个新的 PHP 项目(在 git 存储库中)。

为了从一些非常简单的开始,我首先安装了著名的库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. 该库在文档的大纲中显示为导入声明(第二个屏幕截图)

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

致命错误:找不到类“Michelf\Markdown”

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

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

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

【问题讨论】:

  • 尝试删除 Markdown 位,因为它看起来不像是命名空间的一部分。

标签: php eclipse composer-php autoload psr-0


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-04-27
    • 2018-06-01
    • 2015-04-09
    • 2014-07-25
    • 2019-04-20
    • 2017-02-01
    • 2013-11-09
    • 2015-07-20
    • 2013-11-30
    相关资源
    最近更新 更多