PHP スクリプトで include() を頻繁に使用する習慣があります。それが良いアプローチかどうか知りたいです。インクルードを多用するのは、コードの見栄えを良くして、将来性のあるプログラミングを実現できるようにするためです。
3 に答える
include を使用する代わりに、 autoloadingを調べることをお勧めします。
PHPのオートローディング機能を利用する
例:
function __autoload($class_name) {
include $class_name . '.php';
}
新しいクラスをインスタンス化するときはいつでも。PHP は、1 つの引数、つまりクラス名を指定して __autoload 関数を自動的に呼び出します。以下の例を検討してください
$user = new User():
ここでユーザーオブジェクトをインスタンス化すると、オートロード機能が呼び出され、同じディレクトリからファイルをインクルードしようとします。(上記のオートロード機能を参照)。クラスを自動ロードする独自のロジックを実装できるようになりました。存在するディレクトリに関係なく。詳細については、このリンクhttp://in.php.net/autoloadを確認してください。
更新: @RepWhoringPeeHaa、あなたはそれが正しい仲間だと言いました。spl_autoload を使用すると、単純な自動ロード機能よりも多くの利点があります。私が見る主な利点は、複数の関数を使用または登録できることです。
例えば
function autoload_component($class_name)
{
$file = 'component/' . $class_name . '.php';
if (file_exists($file)) {
include_once($file);
}
}
function autoload_sample($class_name)
{
$file = 'sample/' . $class_name . '.php';
if (file_exists($file)) {
include_once($file);
}
}
spl_autoload_register('autoload_component');
spl_autoload_register('autoload_sample');
オブジェクト指向を開発していて、クラスごとにファイルがあるinclude
場合は、クラスが使用されているがまだロードされていないときに自動的に呼び出すオートローダー関数を実装することを検討してください。
$callback = function($className) {
// Generate the class file name using the directory of this initial file
$fileName = dirname(__FILE__) . '/' . $className . '.php';
if (file_exists($fileName)) {
require_once($fileName);
return;
}
};
spl_autoload_register($callback);