3

最后一天我一直在努力让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 (from "symfony/class-loader") 工作得非常好,当我检查加载了哪些命名空间时,它Symfony\Component\Yaml是数组中的第一个。

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

有谁知道我做错了什么?

4

1 回答 1

6

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

一般来说,您可能应该使用 composer 生成的自动加载文件,而不是 S2 文件。

这有效:

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

use Symfony\Component\Yaml\Parser;

$parser = new Parser();

var_dump( $parser->parse( file_get_contents('config.yml') ) );
于 2013-07-16T14:25:04.977 回答