0

私はいくつかの構成ファイルを持っていますが、どこでも使用する必要はありません。自動ロードしたくありません。構成ファイルをコントローラーにロードする方法を教えてください。それは serviceLocator で取得できます。使用するように言わないでください。 zend\config\config、ありがとう。</p>

4

1 に答える 1

1

まず、質問をしてから、誰かに XY について教えてほしくない、と直接言うのはお勧めできません。XY しか方法がない場合はどうなりますか?

あなたはいつでも次のようなことをすることができます

$onlyNowConfig = require_once('./config/onlyNowConfig.php');

PHP の現在の作業ディレクトリは、関数public/index.phpを介して設定されているため、アプリケーションのルートです。chdir()

それ以外は、設定を .ini 内に含めても特に害はありませんmodule.config.php。は、クラス内の関数のModuleManager存在をチェックします。存在する場合は、構成が読み込まれます。通常、すべてのモジュールには、ロードされる構成があります。また、100 ~ 200 行の構成行を別のファイルにアウトソーシングすることによる実際の速度 (不利益) の利点はありません。必要ないくつかのアクションにのみ含めることで行う追加の I/O は、実際には、構成をマージするのにかかるわずかな時間よりも長くなります (おそらく、合計 1 ミリ秒対 2 ~ 3 ミリ秒の I/O のようになります)。 .getConfig()Module

に含めることをお勧めします。module.config.phpそうすれば、 を介してどこでも利用できるようになりますServiceLocator。それ以外の場合は、どこにいても必要な構成ファイルを 1 つ含める/要求するだけです。PHP の作業ディレクトリは変更されないため、include/require パラメータは決して変更されません (chdir() を介して新たに設定しない限り - これは強くお勧めしません)。

于 2013-09-21T14:03:01.500 に答える