ホームページ  >  記事  >  バックエンド開発  >  2 つの PHP 自動読み込み実装方法の詳細な例

2 つの PHP 自動読み込み実装方法の詳細な例

伊谢尔伦
伊谢尔伦オリジナル
2017-07-01 09:21:242707ブラウズ

php自動読み込みの実装方法は2つあるので、困っている友達は参考にしてください。

PHP を自動的にロードするには 2 つの方法があります
1 つ目のオプションは 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();

2 つ目 このソリューションでは、spl を使用して自動的にロードします。
spl_autoload_register()
簡単な例では、最初に spl_autoload() を呼び出して「.php」プログラムを見つけます。デフォルトの検索拡張子は「.ini」です。拡張子が見つからない場合は、

拡張子を定義して検索することもできます。

functionloader1($class)
{ functionloader1($class) {
//自分で読み込みコードを書いてください
}
functionloader2($class)
{
//loader1() が見つからない場合は、私があなたのところに行きます

spl_autoload_register('loader1');
spl_autoload_register( 'loader2');
他にもあります...
MVC フレームワークが自動ロードを実装する方法
最初にパスを設定します
'include' => array( 'application/catalog /controllers', 'application /catalog/models', ),$include = array('application/controllers', 'application/models', 'application/library');
set_include_path(get_include_path() . PATH_SEPARATOR .implode(PATH_SEPARATOR) , $config['include ']));
URLを取得したら、コントローラーとメソッドを解析します
その後、自動読み込みを設定します


コードは次のとおりです:

set_include_path('aa' . PATH_SEPARATOR . get_include_path()); 
//function autoload($className) 
//{ 
// if (file_exists($className . '.php')) { 
// include_once($className . '.php'); 
// } else { 
// exit('no file'); 
// } 
//} 
spl_autoload_register(); 
$a = new Acls();

Route、コントローラーをインスタンス化して呼び出します。メソッドを入力すると、書いたものが実行されます


コードは次のとおりです:

class Loader 
{ 
/** 
* 
自动加载类
 
* @param $class 类名 
*/ 
public static function autoload($class) 
{ 
$path = ''; 
$path = str_replace('_', '/', $class) . '.php'; 
include_once($path); 
} 
} 
/** 
* sql自动加载 
*/ 
spl_autoload_register(array('Loader', 'autoload'));

初期の自動読み込みが完了しました

以上が2 つの PHP 自動読み込み実装方法の詳細な例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。