2016-08-03 7 views
0

に直接作曲インストールパッケージを使用して、私はsymfonyの2.8アプリを持っている、と私は私が使用したいhtmlpurifierライブラリを持っているcomposer.jsonファイルに:symfonyの

"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); 
?> 

十分フェア、今私がいる問題はくそライブラリを使用しています。

私のクラスはuse \HTMLPurifier\HTMLPurifier.auto;でした。これは構文エラーでした(useステートメントにピリオドはありません)。

は、だから私は、

use \HTMLPurifier\Config; 

class Test 
{ 
    public function blah() 
    { 
     $config = Config::createDefault(); 
    } 
} 

を試みたが、symfonyはそれが設定ファイルを見つけたことを訴えたが、クラス名は(ファイル名はConfig.phpで、クラス名がHTMLPurifier_Configで)同じではありませんでした。私はuse \HTMLPurifier\Config as HTMLPurifier_Config;とuse文を置き換えようとしました。そして、それは私に、クラスではなくファイルを見つけることができるという主張と同じエラーを与えました。

私は混乱しています。そのライブラリのすべてのクラスをロードするオートローダー・ファイルを持つコンポーザー・インストール・ライブラリを扱う最良の方法は何ですか? Symfonyオートローダがファイル名を使用するように、すべてのクラスをファイル名に合わせたり、その逆に変更する必要がありますか?それとも簡単に見過ごしている簡単な方法がありますか?

いつものように、ありがとう。

答えて

2

あなたは存在しない名前空間を呼び出しました。コードサンプルは

use HTMLPurifier_Config as Config; 

class Test 
{ 
    public function blah() 
    { 
     $config = Config::createDefault(); 
    } 
} 

おかげ

+0

それとも、 '$ CONFIG = \ HTMLPurifier_Config :: createDefault()を使用して動作します従ってください;' – qooplmao