2

このコードブロックを含む例や、2行がコメントされていない他の例を見たことがあります。これらの2行の目的は正確には何ですか?

$moduleLoader = new Zend_Application_Module_Autoloader(array(
    'namespace' => '',
    'basePath' => APPLICATION_PATH)
);


$autoloader = Zend_Loader_Autoloader::getInstance(); //MAYBE NOT
$autoloader->setFallbackAutoloader(true);      //MAYBE NOT

return $moduleLoader;

追加した:

答えを考えると、このようにするのは良いことですか?オーバーヘッドやそれについて良くない何かがありますか、それともこれは標準的な方法ですか?

4

4 に答える 4

2

これにより、指定されたオートローダーが、名前空間が指定されていない名前空間およびクラスに使用され、その名前空間のオートローダーが定義されていない場合は、「namespace」パラメーターが事実上無視されます。

$autoloader->setFallbackAutoloader(true)名前空間に属していないクラスがある場合、または多くの異なる名前空間にまたがるクラスを使用する必要がある場合に使用するのが適切です。

于 2010-12-09T23:13:21.297 に答える
2

2行目は、標準構造のオートローダーでは不十分な場合の回避策の一種であり、処理速度が低下するため、回避する必要があります(非常に便利な場合もあります)。

フォールバックオートローダーはZF2.0では使用できないようです。

于 2010-12-10T18:22:49.013 に答える
1

最初の行は簡単で、2番目の行はマニュアルに記載されています。つまり、Zend Autoloaderは、プレフィックスとして記載されているクラスや登録済みのオートローダーだけでなく、すべてのクラスを(自動)ロードしようとします。

于 2010-12-09T23:09:18.527 に答える
1

1つ目は、オートローダーのインスタンスを取得することです。オートローダーはシングルトンであるため、インスタンスを1つだけ持つことができます。そのインスタンスがまだ存在しない場合は、作成されます。

2行目は、オートローダーをキャッチオールとして機能させることです。何かが見つからない場合は常に、オートローダーがトリガーされます。

于 2010-12-09T23:09:30.093 に答える