2

htmlpurifier を symfony2 コントローラーに統合しようとしていますが、symfony2 は、インスタンス化しようとしているクラスがその変動コントローラーの一部であると想定していますが、そうではなく、htmlpurifier ライブラリーから含まれているクラス型です。

クラス名をエスケープして、symfony2 が現在の名前空間で検索しないようにする方法はありますか?

4

2 に答える 2

7

symfony2 用の HTMLPurifier のバンドル バージョンを使用することをお勧めします。

gitHub で見つけることができます: https://github.com/Exercise/HTMLPurifierBundle

composerでインストールするのはとても簡単です

composer.json ファイルでバンドルを要求します。

{
    "require": {
         "exercise/htmlpurifier-bundle": "*",
    }
}

バンドルをインストールします。

$ composer update exercise/htmlpurifier-bundle

バンドル app/AppKernel.php を登録します。

public function registerBundles()
    {
        return array(
            new Exercise\HTMLPurifierBundle\ExerciseHTMLPurifierBundle(),
            // ...
        );
    }

コントローラーでサービスとして使用できます。

$purifier = $this->container->get('exercise_html_purifier.default');
$clean_html = $purifier->purify($dirty_html);

または小枝テンプレートのフィルター:

{{ text|purify }}

symfony2 フォームビルダー用のフォームデータトランスフォーマーでもあります

それはすべてドキュメントにあります: https://github.com/Exercise/HTMLPurifierBundle

于 2014-04-20T11:22:03.483 に答える
-1

あ、たまたま見つけた。

それ以外の

require_once dirname('_FILE_') . '/plugins/htmlpurifier/library/HTMLPurifier.auto.php';
$purifier = new HTMLPurifier();

クラス名の先頭にバックスラッシュを付ける必要があります

require_once dirname('_FILE_') . '/plugins/htmlpurifier/library/HTMLPurifier.auto.php';
$purifier = new \HTMLPurifier();
于 2013-07-01T23:38:00.303 に答える