直接在Symfony中使用composer安装包



我有一个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();
   }
}

感谢

相关内容

  • 没有找到相关文章

最新更新