2012-03-14 3 views

答えて

3

...特定のフォルダからすべての名前空間をインポートするのグリップを得ることができない私は、私の機能は、同様の名前を持っていない場合、私は必要ないと、思ったんだけど名前空間を使う?

しかし、名前空間は、名前空間の衝突を避けることよりもより多くの利益を提供し、それはまた、良好なディレクトリとファイル構造を見つけるためにあなたのファイルが容易になり、親を決定するための直感的なアプローチを維持するためにあなたを強制的に/子関係。例えば

// Zend/Translate/Adapter.php 
class Zend_Translate/Adapter {} 

// Zend/Translate/Adapter/Csv.php 
class Zend_Translate_Adapter_Csv extends Zend_Translate_Adapter {} 

は、あなたが見ることができるように、類似したオブジェクトに関連するクラスは、論理的にグループ化され、そして上記のコードが示すように、可能な親/子関係を意味します。 1つの注意点として、ディレクトリにサブディレクトリとともにクラスファイルが含まれていても、サブディレクトリ内のファイルがファイルを拡張することは保証されません。

2

私は間違った視点からこの質問に近づいていると思います。確かに、固有の関数名があることがわかっている場合は、名前空間の使用を避けることができます。しかし、これは非常に短い視覚的なアプローチであり、アプリケーションの複雑さ、構造の仕方などは考慮しません。

Mikeが述べたように、ZendやSymfonyなどのフレームワークを使用する場合オブジェクト指向プログラミングに重いコードがあれば、名前空間の使用を強くお勧めします。偉大なPHPパッケージのクラスを組み込みたいとしましょう。名前空間がなければ、競合がないという保証はありません。

さらに、Symfony 2.0のような新しいフレームワークでは、名前空間を使用する必要があります。だからあなたはそれに慣れるほうがいい。

+0

すべての有効なポイント。 –

+0

私はフレームワークについては何も話していません、私は自分のプロジェクトを(おそらく)より管理しやすいコンポーネント/サブコンポーネントに編成することを指しています。 –

+0

@Fike Frameworksは私の答えの一部です。私はそれらの言及がこの議論に関連していると感じました。 –

関連する問題