PHPで、次のような初期化子を使用してファイルをインクルードまたは必要とする場合。サブディレクトリまたは別の場所に同じ初期化子を含める場合に発生するファイルパスの問題をどのように克服できますか。
<?php
// settings
$settings = array('config');
foreach ($settings as $setting) {
require_once "../system/settings/{$setting}.php";
}
// neutrals
$neutrals = array('functions');
foreach ($neutrals as $neutral) {
require_once "../system/neutrals/{$neutral}.php";
}
// helpers
$helpers = array('database', 'file', 'logger', 'user', 'session', 'database');
foreach ($helpers as $helper) {
require_once "../system/helpers/{$helper}.php";
}
// models
$models = array('test');
foreach ($models as $model) {
require_once "../system/models/{$model}.php";
}
?>
上記のスクリプトは、all_initializer.phpファイルにあります。ここでのハードルは、パブリックサブディレクトリまたは他の場所で同じ初期化子を使用できないことです。ファイルが見つからないという致命的なエラー(必要なファイルの場合)が発生するためです。
編集
たとえば、index.phpファイルのパブリックフォルダでこのイニシャライザを使用している場合、パブリックフォルダpublic/subにサブディレクトリがあります。public / sub /index.phpで使用したのと同じ初期化子をpublic/sub / index.phpで使用するにはどうすればよいですか?