PHPネーミングスペースおよび自動ロード
2133 ワード
ネーミングスペース
ネーミングスペースとは何ですか?
ネーミングスペース(英語:Namespace)は、識別子(identifier)の表示範囲を表します.1つの識別子は、異なるネーミング空間における意味が互いに無関係である複数のネーミング空間で定義することができる.これにより、既存の定義が他のネーミングスペースにあるため、新しいネーミングスペースで任意の識別子を定義できます.
簡単に言えば、ネーミングスペースは、異なるライブラリが同じ環境で使用されるときに発生するネーミング競合を解決するためです.例えば、私自身にはAという関数がありますが、システムにはすでにA関数があります.それは衝突します.
PHPのネーミングスペース
PHPはバージョン5.3からネーミングスペースを導入し、その後、多くの既存のPHPクラスライブラリおよびフレームワークがサポートされ始めました.ではPHPのネーミングスペースはどう使いますか?
ネーミングスペースの定義
次に、ネーミングスペースを定義する例を示します.
上の例では、典型的なネーミングスペース定義方法であり、
ネームスペースの使用
ネーミングスペースを使用する方法は次のとおりです.
まず注意しなければならないのは、ネーミングスペースが申明の役割しか果たしていないことです.つまり、ネーミングスペースを使用したときも、このネーミングスペースが申明したファイルを含まなければなりません.使用中は
詳細はPHP公式ドキュメントをご覧いただけます
自動ロード
ファイルごとにネーミングコントロールを明示して手動で
最も簡単な方法は、関数
すでにネーミングスペースがあるクラスであれば、関数
ネーミングスペースとは何ですか?
ネーミングスペース(英語:Namespace)は、識別子(identifier)の表示範囲を表します.1つの識別子は、異なるネーミング空間における意味が互いに無関係である複数のネーミング空間で定義することができる.これにより、既存の定義が他のネーミングスペースにあるため、新しいネーミングスペースで任意の識別子を定義できます.
簡単に言えば、ネーミングスペースは、異なるライブラリが同じ環境で使用されるときに発生するネーミング競合を解決するためです.例えば、私自身にはAという関数がありますが、システムにはすでにA関数があります.それは衝突します.
PHPのネーミングスペース
PHPはバージョン5.3からネーミングスペースを導入し、その後、多くの既存のPHPクラスライブラリおよびフレームワークがサポートされ始めました.ではPHPのネーミングスペースはどう使いますか?
ネーミングスペースの定義
次に、ネーミングスペースを定義する例を示します.
上の例では、典型的なネーミングスペース定義方法であり、
const
function
class
・ネーミングスペースに拘束されているのみである.ネームスペースの使用
ネーミングスペースを使用する方法は次のとおりです.
まず注意しなければならないのは、ネーミングスペースが申明の役割しか果たしていないことです.つまり、ネーミングスペースを使用したときも、このネーミングスペースが申明したファイルを含まなければなりません.使用中は
__NAMESPACE__
で現在のネーミングスペースを表示できます.詳細はPHP公式ドキュメントをご覧いただけます
自動ロード
ファイルごとにネーミングコントロールを明示して手動で
include
非常にスマートではないので、自分のPHPシステムやフレームワークでオートローディング技術を使って、システムに自分で探してもらうことができます最も簡単な方法は、関数
__autoload
関数を利用することですが、この関数は、非命名コントロールでのみ定義できます.つまり、グローバルな場合です.function __autoload($class) {
$dir = './';
set_include_path(get_include_path().PATH_SEPARATOR.$ids_dir);
$class = str_replace('\\', '/', $class) . '.php';
require_once($class); }
すでにネーミングスペースがあるクラスであれば、関数
spl_autoload_register
クラスのメソッドを1つ登録する代わりに、関数__autoload