3

http://php.net/manual/en/language.namespaces.importing.phpのメモから

インポート ルールはファイル単位です。つまり、含まれるファイルは親ファイルのインポート ルールを継承しません。

したがって、これは、すべてのファイルで名前空間をハードコーディング/再宣言するか、常に完全修飾名前空間を使用する必要があることを意味します。

  1. どうしてこれなの?名前空間のポイントは、決して/ほとんど変更されるべきではないということですか?
  2. エイリアシング コードを文字列に格納して eval() を使用するのは悪い考えでしょうか? それを行う汚い方法のように見えるので、おそらくそうです。
  3. ほとんどの開発者は、エイリアスの書き換えを最小限に抑えるために、ブートストラップで頻繁に使用されるオブジェクト (データベースなど) を宣言していますか?

ありがとう

4

1 に答える 1

0
  1. 名前空間は、特定のクラスの依存関係を示すことになっています。継承で得られる欠点は、クラスで決して使用されない use ステートメントをクラスに含めることができることです。

  2. はい、それは悪い考えeval()です、汚い汚いことです、それはどんな犠牲を払っても避けるべきです

  3. DBがすでに初期化されている場合、残りのファイルに名前空間は必要ありません。DBがすでに初期化されている場合、ファイルの初期化されたクラスと同じになり、初期化されたクラスと同じになります。

于 2013-06-19T16:52:37.323 に答える