我有一个symfony 2.8应用程序,在composer.json
文件中我有我想要使用的htmlpurifier库:
"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文件,但是类名不一样(文件名是Config.php
,类名是HTMLPurifier_Config
)。我尝试用use \HTMLPurifier\Config as HTMLPurifier_Config;
替换use语句并且它给了我同样的错误,声称它可以找到文件而不是类。
所以我很困惑。处理作曲家安装的库的最佳方法是什么,这些库具有加载该库的所有类的自动加载器文件?我是否必须更改所有类以使它们与文件名匹配,反之亦然,因此Symfony自动加载器将使用它们?或者,我只是忽略了一种更容易的方式?
一如既往,谢谢。
答案 0 :(得分:2)
您调用的不存在命名空间。关注代码示例将起作用
use HTMLPurifier_Config as Config;
class Test
{
public function blah()
{
$config = Config::createDefault();
}
}
由于