2012-05-03 12 views
1

Symfony2を使用してPHPのウェブサイトをプログラミングしています。php "クラスが見つかりません"と "クラスを再宣言できません"エラー

私は、ファイルにMainController.php

をクラスMainContentを定義し、私はこれらのクラスの両方が同じ名前空間で定義されていますが、それはエラーを与えたSecurityController.php

という名前の他のコントローラファイル内でこのクラスを使用する必要がありました:

Class 'MainContent' not found... 

だから私はSecurityController.phpで再びクラスを定義しようとしましたが、結果は次のとおりです。

Cannot redeclare class 'MainContent...' 

わかりません。宣言されているかどうかわかりません。

実際、私はC#プログラマです。多分、これらの言語の違いのために私は混乱しています。

答えて

0

symfonyは、いわゆるオートローディングを使用します。あなたのクラスは独自のファイルで定義されていないので、自動読み込みのルールに従えばロードできないため、クラスが見つかりません。しかし、クラスを定義すると、スクリプトは正常に処理され、同じクラスを定義する別のファイルが含まれ、衝突(クラスを再宣言できません)が生成されます。

  • は(最高コントローラ外)一つの場所でクラスを定義し、あなたはそれが
  • クラス実際にsymfonyのヘルパークラスを作成する必要があるときのinclude_once/require_onceをを使用するので、オートローディングは:

    可能な解決策があります実際にあなたがクラスを宣言しているときはいつでも、使用

  • を作品

    if(!class_exists('ClassName')) { class ClassName {} }

関連する問題