我有一个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 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语句替换为use \HTMLPurifier\Config as HTMLPurifier_Config;
And,它给了我同样的错误,声称它可以找到文件,但不能找到类。
所以我很困惑。处理由composer安装的具有自动加载程序文件的库的最佳方法是什么,该文件可以加载该库的所有类?我是否必须更改所有类,以使其与文件名匹配,反之亦然,因此Symfony自动加载器将使用它们?还是有一种我更容易忽略的简便方法?
一如既往,谢谢。
您称不存在的命名空间。遵循代码示例将起作用
use HTMLPurifier_Config as Config;
class Test
{
public function blah()
{
$config = Config::createDefault();
}
}
谢谢
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句