15

PHP 4 以降、コード ライブラリの構築を開始しました。以前はrequire_onceクラスをインポートしていました。PHP 5.3 では、名前空間の定義とインポートに遭遇しました。

useを使用する代わりにimporting ( statement) を使用するようにソース ファイルを変更したいと考えていますrequire_once。これは正しい決定ですか、私にはわかりません。

簡単だと思います。クラスファイルの先頭に名前空間を定義し、それらを使用する他のファイルで検索と置換を行います ( に置き換えますrequire_once) use。実際には何がうまくいかないのでしょうか?

そして、パフォーマンスの向上はありますか?ファイルをインクルードすると、PHP がファイルを見つける方法は明らかです。しかし、名前空間のインポートでは、それほど明白ではありません。名前空間を検索して PHP でインデックスを作成すると、パフォーマンスが低下しますか?

4

1 に答える 1

27

userequire_onceはまったく別物です。useファイルのインポートをまったく行っていません。useあなたの生活を楽にするだけです。Full\Path\To\Class毎回書く代わりに、次のことができます

use Full\Path\To\Class

$bar = new Class();

あなたは正しいファイルを含める責任があります。

すべてのファイルを手動でロードする代わりに、 PHP の auto class loadingに頼ることができます。

Symfony 2Zend2などのComposerまたはフレームワークを使用して、すべての自動読み込みを処理できます。

use代わりに自動ロードとステートメントを使用するように既存のコードを移行すると、include_once非常に時間がかかる場合があります。ほとんどの場合、検索と置換のソリューションはありません。

于 2013-03-15T14:24:59.820 に答える