2016-08-03 22 views
0

使用作曲家安装包我有一个symfony的2.8应用程序,并在composer.json文件我有我想要使用htmlpurifier库:直接在Symfony的

"require": { 
     ... 
     "ezyang/htmlpurifier": "^4.8" 
}, 

它安装,我可以看到该库中我的/vendor/目录。 Composer自动为我使用名称空间映射。

return array(
    ... 
    'HTMLPurifier' => array($vendorDir . '/ezyang/htmlpurifier/library'), 
    ... 
); 

the main site状态,你需要自动加载机,然后使用各种类的说明。

<?php 
    require_once '/path/to/htmlpurifier/library/HTMLPurifier.auto.php'; 

    $config = HTMLPurifier_Config::createDefault(); //defined in HTMLPurifier\Config.php 
    $purifier = new HTMLPurifier($config); //defined in HTMLPurifier\HTMLPurifier.php 
    $clean_html = $purifier->purify($dirty_html); 
?> 

够公平的,现在我遇到的问题是使用darn库。

在我的课上我有use \HTMLPurifier\HTMLPurifier.auto;这是一个语法错误(在use语句中不应该有句点)。

所以,我想,

use \HTMLPurifier\Config; 

class Test 
{ 
    public function blah() 
    { 
     $config = Config::createDefault(); 
    } 
} 

但Symfony的抱怨说,它发现了配置文件,但类名是不一样的(文件名是Config.php和类名是HTMLPurifier_Config)。我试图用use \HTMLPurifier\Config as HTMLPurifier_Config;替换使用语句,它给了我同样的错误,声称它可以找到文件,但不是类。

所以我很困惑。处理作曲家安装的库的最佳方法是使用自动加载器文件来加载该库的所有类。我是否必须更改所有类,以便它们匹配文件名或反之亦然,Symfony自动加载器将使用它们?还是有一种简单的方法,我只是俯视?

一如既往,谢谢。

回答

2

您调用了不存在的名称空间。按照代码示例将工作

use HTMLPurifier_Config as Config; 

class Test 
{ 
    public function blah() 
    { 
     $config = Config::createDefault(); 
    } 
} 

感谢

+0

或者只是使用'$配置= \ HTMLPurifier_Config :: createDefault();' – qooplmao