2013-07-16 55 views
3

我一直在努力爭取最後一天現在得到了Symfony Yaml解析器在我的應用程序中工作。類'Symfony Component Yaml 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'))); 

然後我得到這個錯誤:

(!) Fatal error: Class 'Symfony\Component\Yaml\Yaml' not found in /Projects/my-app/web/index.php on line 16

的UniversalClassLoader(從"symfony/class-loader")工作完全正常,而當我檢查什麼名字空間被加載,Symfony\Component\Yaml是數組中的第一個。

我的IDE(PHPStorm)在類名下面給出了一條波浪線「存在多個定義」。一個是去真正的供應商文件夾,另一個是指composer.phar文件內的文件(只讀)。

有誰知道我在做什麼錯?

回答

5

顯示引導代碼。特別是在自動裝載機正在創建的地方。

一般來說,您應該使用composer生成的autoload文件,而不是S2版本。

這工作:

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

use Symfony\Component\Yaml\Parser; 

$parser = new Parser(); 

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

感謝這個,@Cerad!它現在起作用了,我使用了'autoload_classmap.php'和'autoload_namespaces.php'的一些奇怪的組合。愚蠢... – Nick