我有一个symfony 2.8应用程序,在composer.json
文件中我有我想使用的htmlpurifier库:
"require": {
...
"ezyang/htmlpurifier": "^4.8"
},
它安装了,我可以在/vendor/
目录中看到库。Composer会自动放置一个命名空间映射供我使用。
return array(
...
'HTMLPurifier' => array($vendorDir . '/ezyang/htmlpurifier/library'),
...
);
主站点上的说明说明您需要自动加载器,然后使用各种类。
<?php
require_once '/path/to/htmlpurifier/library/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault(); //defined in HTMLPurifierConfig.php
$purifier = new HTMLPurifier($config); //defined in HTMLPurifierHTMLPurifier.php
$clean_html = $purifier->purify($dirty_html);
?>
公平地说,现在我遇到的问题是使用该死的库。
在我的课上,我有use HTMLPurifierHTMLPurifier.auto;
,这是一个语法错误(use
语句中不应该有句点)。
所以我试过了,
use HTMLPurifierConfig;
class Test
{
public function blah()
{
$config = Config::createDefault();
}
}
但Symfony抱怨说,它找到了Config文件,但类名不一样(文件名为Config.php
,类名为HTMLPurifier_Config
)。我试着用use HTMLPurifierConfig as HTMLPurifier_Config;
替换use语句,但它给了我同样的错误,声称它可以找到文件,但不能找到类。
所以我很困惑。处理composer安装的库的最佳方法是什么?这些库有一个自动加载器文件,可以加载该库的所有类?我是否必须更改所有的类,使它们与文件名匹配,或者反之亦然,以便Symfony自动加载器使用它们?或者有没有一种更简单的方法可以让我忽略?
一如既往,谢谢。
您调用了不存在的Namespace。跟随代码样本将工作
use HTMLPurifier_Config as Config;
class Test
{
public function blah()
{
$config = Config::createDefault();
}
}
感谢