PHP を自動ロードするには 2 つの方法があります。
最初のオプションは __autoload を使用することです。
ただし、ファイルが存在するかどうかを判断するという未解決の問題が 1 つあります。
コードをコピーします コードは次のとおりです:
set_include_path('aa' . PATH_SEPARATOR . get_include_path()) ;
function __autoload($ className)
{
//この検出を追加すると、このファイルは現在のディレクトリにないため、ファイルの存在は検出されません。ただし、 include は成功します。
if (file_exists ($className . '.php')) {
include_once($className . '.php')
} else {
exit('no file') );
}
}
$a = new Acls();
コードをコピー コードは次のとおりです:
set_include_path('aa' . PATH_SEPARATOR) . get_include_path());
//function __autoload ($className)
//{
// if (file_exists($className . '.php')) {
// include_once($ className . '.php');
// exit('no file');
//}
>$a = new Acls();
spl_autoload_register() は、最初に spl_autoload() を自動的に呼び出し、パス内で小文字のファイル名を持つ「.php」プログラムを検索します。デフォルトの拡張子は「」です。 .ini" を作成し、spl_autoload_extensions() を使用して拡張機能名を登録することもできます。
見つからない場合は、
function loader1($class) 🎜>{
//読み込みコードを自分で書きます
}
functionloader2($class)
{
//loader1() が見つからない場合は、私が探しに来ます
}
spl_autoload_register('loader1');
spl_autoload_register('loader2');
さらに多くのことができます...
MVC フレームワークはどのように自動読み込みを実装しますか?
path
'include' => array( 'アプリケーション/カタログ/コントローラ', 'アプリケーション/カタログ/モデル', ),$include = array('アプリケーション/コントローラ', 'アプリケーション/モデル', 'アプリケーション/ライブラリ');
set_include_path(get_include_path() . PATH_SEPARATOR .implode(PATH_SEPARATOR, $config['include']));
URL を取得したら、コントローラーとメソッドを解析します。
次に、自動を設定します。ロード
コードをコピーします
コードは次のとおりです:
クラス ローダー { /**
* クラスを自動的にロードします* @param $class クラス名
*/
パブリック静的関数 autoload($class)
{
$path = '';
$path = str_replace('_', '/', $class) '。 php';
include_once($path);
}
}
/**
* SQL 自動読み込み
*/
spl_autoload_register(array('Loader', 'autoload')); >
ルート、コントローラーのインスタンス化、メソッドの呼び出し、記述したものが実行を開始します
コードをコピーします
/*** ルーティング */ public function Route()
{if (class_exists($this->getController())) {
$rc = new ReflectionClass($this->getController());
if ($rc->hasMethod($this->getAction())) {
$controller = $rc->newInstance( );
$method = $rc->getMethod($this ->getAction());
$method->invoke($controller); else
('アクションなし');
} else
throw new Exception('nocontroller');
初期の自動ロードが完了しました