找不到类'Symfony \ Component \ Yaml \ Yaml'

时间:2013-07-16 07:56:20

标签: symfony composer-php autoload

我在最后一天一直在努力让 Symfony Yaml解析器在我的应用程序中工作。

我的composer.json看起来像这样;

{
"require": {
    "symfony/class-loader": "2.4.*@dev",
    "symfony/yaml": "2.4.*@dev",
    "facebook/php-sdk": "dev-master"
},
"autoload": {
    "psr-0": {
        "MyApp": "src/"
    }
}

我在我的应用程序中使用它:

use Symfony\Component\Yaml\Parser;

$parser = new Parser();
var_dump( $parser->parse( file_get_contents('config.yml') ) );

然后我收到此错误:

  

(!)致命错误:第16行的/Projects/my-app/web/index.php中找不到类'Symfony \ Component \ Yaml \ Yaml'

UniversalClassLoader(来自"symfony/class-loader")工作得很好,当我检查加载了哪些命名空间时,Symfony\Component\Yaml是数组中的第一个。

我的IDE(PHPStorm)在类名下面给出了一条波浪线,“存在多个定义”。一个是进入真正的供应商文件夹,另一个是指composer.phar文件中的文件(只读)。

有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:6)

显示您的引导代码。特别是在创建自动加载器的地方。

通常,您应该使用作曲家生成的自动加载文件而不是S2文件。

这有效:

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

use Symfony\Component\Yaml\Parser;

$parser = new Parser();

var_dump( $parser->parse( file_get_contents('config.yml') ) );