名前空間(PHPの場合)は、実際にはプロジェクト内のクラス間の名前の衝突を防ぐための単なる方法です。それらは、「Zend_Controller_Action_Helper」のような名前のクラスの形で(公式にサポートされる前に)しばらくの間使用されてきました。PHP5.3で「実際の」名前空間が導入されたことは、実際には、名前空間を「使用」することで、コードで短くて読みやすい名前を使用できることを意味します。
例えば。
ファイル:system / database.php
namespace MyProject;
class Database {
// ...
}
ファイルpublic/index.php
require_once '../system/database.php';
// here we have to use the fully qualified name of the Database class,
// this is similar to the old unofficial underscore method.
$db = \MyProject\Database::connect();
ファイル:public / index2.php
require_once '../system/database.php';
use MyProject\Database;
// here we can simply use "Database" because the "use" statement says:
// for this file we are using the "Database" class from the "MyProject" namespace
$db = Database::connect();
名前空間は、慣例により(および自動ロードの場合)ディレクトリにのみ関連付けられます。名前空間自体は、クラスの包含方法と使用方法を変更しません。