2012-04-24 10 views
6

私は私のPHPスクリプトで多くのインクルードを使用する習慣があります。私はそれが良いアプローチであることを知りたいと思います。私は、将来の保証プログラミングのためにコードを見栄え良くするために、たくさんのインクルードを使用します。PHPであまりにも多くのインクルード()を使用

答えて

5

メイク使用

例:あなたは新しいクラスをインスタンス化するたびに

function __autoload($class_name) { 
    include $class_name . '.php'; 
} 

。 PHPは自動的に__ autoload関数を1つの引数、つまりクラス名で呼び出します。あなたがここにオートロード関数が呼び出されたユーザオブジェクトをインスタンス化するときには、同じディレクトリからファイルをインクルードしようと、以下の例

$user = new User(): 

を検討してください。 (上記オートロード機能を参照)。クラスを自動ロードするための独自のロジックを実装することができます。それが存在するディレクトリに関係なく。詳細については、http://in.php.net/autoloadを参照してください。

更新: @RepWhoringPeeHaa、あなたは正しいバディだと言いました。 spl_autoloadを使用して単純なオートロード機能を使用すると、より多くの利点があります。私が見る主な利点は、複数の機能を使用または登録できることです。

あなたはオブジェクト指向の開発および各クラスのファイルを持っている場合は、自動的にロードされていない、まだクラスが使用されている場合includeを呼び出しますが、オートローダ機能の実装を検討し

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'); 
+0

@yusufiqbalpk、詳細はこちらをご覧ください。 PHPでOOPSの概念を学ぶことから始めることをお勧めします。ここにあなたを始めるためのリンクhttp://net.tutsplus.com/tutorials/php/object-oriented-php-for-beginners/ –

+1

すべての回答は良かったが、私はあなたのチュートリアルリンクのためにあなたを選ぶ。最高の男。 – yusufiqbalpk

+1

@yusufiqbalpk上記の代わりに 'new '' spl_autoload'を考えてみてください。 – PeeHaa

6

インクルードを使用する代わりに、autoloadingを調べることができます。 PHPのオートローディング機能の

5

例えば:

$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); 
+0

私はそれを一度も使用していません。そのために私はまず学ばなければならない。ではどこでそれを学ぶことができますか?多分役に立つリンクかもしれません。前もって感謝します – yusufiqbalpk