2017-08-21 6 views
0

symfonyでDOMDocumentを使用することができませんでした。私はphp xml拡張子を持たないかもしれないという問題を発見しましたが、DOMDocumentを使用できないにもかかわらず、SymfonyのDOMCrawlerを使用できます。これは明らかにDOMDocumentに似たものを使用しているためです。まあ、クローラのソースコードを見た後、私は彼らがsymfonyでDOMDocumentを使用できません

$dom = new \DOMDocument('1.0', $charset);  
代わりに誰かが二つの違いを知ってい

$dom = new DOMDocument('1.0', $charset); 

いつも、なぜ1つの作品の

およびその他のdoesnのようなものを使用しましたSymfonyにはいませんか?

答えて

2

symfonyでは各クラスの名前空間を使用するためです。 クラスに名前空間を宣言しているので、使用する各クラスの名前空間についてPHPに通知する必要があります。使用しているクラスの名前空間を宣言していない場合、PHPはこのクラスが現在のクラスと同じ名前空間にあると考えます。

ので、このコードではバックスラッシュ"\"new \DOMDocument()は、あなたが「グローバル」名前空間からのDOMDocumentクラスを使用するPHPをinformeすることがあります。 Datetimeオブジェクトを使用する場合は、Datetimeオブジェクトをインスタンス化するときにバックスラッシュも使用する必要があります。

もう1つの解決策は、キーワードUseで宣言することです。 はexempleについて:

use \DOMDucment; 

そして、あなたのコード内で使用すると、バックスラッシュなしでインスタンス化されます:new DomDocument()

+0

それを実現するためではない私の愚かでした。ありがとう – Afunakwa

+0

問題はありません。これは他の人が質問を読んで来るのを助けるかもしれません。 – Mz1907

関連する問題