私はこのようなプロジェクトを持っています:
ここで、フォルダークラスとサブフォルダー内のすべてのphpファイルを自動ロードしたいと思います。
私はこれでそれを行うことができます:
$dirs = array(
CMS_ROOT.'/classes',
CMS_ROOT.'/classes/layout',
CMS_ROOT.'/classes/layout/pages'
);
foreach( $array as $dir) {
foreach ( glob( $dir."/*.php" ) as $filename ) {
require_once $filename;
}
}
しかし、私はこれが好きではありません。例えば。
「layout/pages/a.php」は「layout/pages/b.php」を拡張します
a.phpが最初にロードされたため、エラーが発生します。プロジェクトファイルをどのようにロードしますか?クラス?
解決済み:)
これが私のコードです:
spl_autoload_register('autoloader');
function autoloader($className) {
$className = str_replace('cms_', '', $className);
$className = str_replace('_', '/', $className);
$file = CLASSES.'/'.$className.'.php';
if( file_exists( $file ) ) {
require_once $file;
}
}