ホームページ >バックエンド開発 >PHPチュートリアル >PHPファイルの自動読み込みについて詳しく解説

PHPファイルの自動読み込みについて詳しく解説

php中世界最好的语言
php中世界最好的语言オリジナル
2018-05-19 10:42:101642ブラウズ

今回は、PHP ファイルの使用自動ロードについて詳しく説明します。PHP ファイルを使用して自動ロードする場合の注意事項は何ですか。以下は実際的なケースです。見てみましょう。

伝統的に、PHP では、クラス ファイルを使用したい場合、クラス ファイルをドキュメントの先頭に要求するかインクルードする必要があります:

<?php
require_once('../includes/functions.php');
require_once('../includes/database.php');
require_once('../includes/user.php');
...

しかし、呼び出すドキュメントが多すぎると、毎回クラス ファイルを記述する必要があります。 time 1 行では見栄えがよくありません。PHP ドキュメントを自動的にロードする方法はありますか?

<?php
function autoload($class_name)
{
  require "./{$class_name}.php";
}

はい、PHP の魔法の関数 autoload() を使用して、現在のディレクトリに PHP ファイルを自動的にロードすることができます。もちろん、実際には、次のように使用する可能性が高くなります:

<?php
function autoload($class_name)
{
  $name = strtolower($class_name);
  $path = "../includes/{$name}.php";
  
  if(file_exists($path)){
     require_once($path);
    }else{
      die("the file {$class_name} could not be found");
    }
}

つまり、ファイル名の大文字と小文字を区別して処理し、require する前にファイルが存在するかどうかを確認し、存在しない場合は表示します。カスタマイズされた情報。

同様の使用法はプライベート プロジェクトや単一プロジェクトのフレームワークでよく見られますが、なぜですか?定義できるオートロード関数は 1 つだけであるため、複数人による開発では、全員が 1 つのオートロードを使用することに事前に同意しない限り、異なる開発者が異なるカスタマイズされたオートローダーを使用することは不可能であり、変更が含まれる場合はバージョンを同期することは非常に面倒です。 。

主にこれが理由で、良いニュースは、この自動ロード機能が PHP バージョン 7.2 でまもなく非推奨になるということです。

警告 この機能は PHP 7.2.0 で廃止されました。この機能に依存することは強くお勧めできません。
その利点は、複数のオートローダーをカスタマイズできることです。 autoload() であろうと spl_autoload_register() であろうと、autoload を使用することの利点は、require や include と比較して、自動ロード メカニズムが遅延読み込みであることです。つまり、すべての関数をすぐに呼び出すわけではないことを意味します。これらのファイルは、新しいファイルなど、使用するファイルのみが自動ロード メカニズムを通じてロードされます。

もちろん、spl_autoload_register は、次のようなさまざまなパッケージを含む laravel でよく使用されます:

//使用匿名函数来autoload
spl_autoload_register(function($class_name){
  require_once('...');
});

この記事の事例を読んだ後、あなたはメソッドをマスターしたと思います。さらに興味深い情報については、他の関連記事に注目してください。 PHP中国語ウェブサイトです!

推奨読書:

PHPクラスリフレクションを使用して依存性注入を実装する手順の詳細な説明


ディレクトリ内のファイルを削除するためにPHPのリンク解除とrmdirを実装する方法

以上がPHPファイルの自動読み込みについて詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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