命名空间

Testing Is Documentation

tests/Docs/Started/NamespaceDoc.php命名空间 - 图1

QueryPHP 采用命名空间的方式来有效地组织项目代码,系统在运行过程中会自动注册一些命名空间,完全依赖 Composer 来管理文件自动加载。

系统注册命名空间

为了满足项目开发需求, QueryPHP 在项目运行过程中会注册多个命名空间,命名空间遵循 PSR-4 自动加载规范。

应用命名空间

一个典型的应用会注册下面几个命令空间,命名空间在 composer.json 中定义。

  1. {
  2. "autoload": {
  3. "psr-4": {
  4. "App\\" : "application/app",
  5. "Admin\\" : "application/admin",
  6. "Common\\" : "common"
  7. }
  8. }
  9. }

框架核心命名空间

例外框架核心部分的命名空间为 Leevel,命名空间在 vendor/hunzhiwange/framework/composer.json 中定义。

  1. {
  2. "autoload": {
  3. "psr-4": {
  4. "Leevel\\": "src\\Leevel"
  5. }
  6. }
  7. }

应用测试命名空间

应用测试的命名空间为 Tests,命名空间在 tests/bootstrap.php 中定义。

  1. $composer = include $vendorDir.'/autoload.php';
  2. $composer->addPsr4('Tests\\', __DIR__);

框架核心测试命名空间

框架核心测试的命名空间为 Tests,命名空间在 vendor/hunzhiwange/framework/tests/bootstrap.php 中定义。

  1. $composer = include $vendorDir.'/autoload.php';
  2. $composer->addPsr4('Tests\\', __DIR__);

自定义命名空间

为满足个性化需求,你可以注册自定义的命名空间,命名空间遵循 PSR-4 自动加载规范。

  1. {
  2. "autoload": {
  3. "psr-4": {
  4. "Hello\\" : "hello"
  5. }
  6. }
  7. }