aura/project-kernel

Aura项目的共享内核文件。

4.0.0-alpha1 2021-08-01 17:27 UTC

This package is auto-updated.

Last update: 2024-08-28 02:44:32 UTC


README

此内核包作为Aura.Cli_KernelAura.Web_Kernel和其他未来内核类型的基础存在。

前言

要求

此内核需要PHP 7.2或更高版本;我们原则上推荐使用最新版本的PHP。如果您对为旧版本的PHP使用此包感兴趣,请使用版本2.x(适用于PHP 5.3+)。

与Aura库包不同,此内核包具有用户空间依赖项,这些依赖项本身可能还有其他依赖项

安装

您可以通过在您的composer.json文件中包含以下require元素,使用Composer安装和自动加载此内核

"require": {
    "aura/project-kernel": "dev-develop-2"
}

或者,下载或克隆此存储库,然后要求或包含其autoload.php文件。

测试

Build Status

此内核与PHPUnit具有100%的代码覆盖率。要在命令行中运行单元测试,请在包根目录中运行composer install,然后运行composer test。这需要composer可用。

PSR合规性

此内核试图遵守PSR-1PSR-2PSR-4。如果您注意到合规性疏忽,请通过拉取请求发送补丁。

社区

要提问、提供反馈或与其他Aura社区成员交流,请加入我们的Google Group,关注@auraphp或在我们Freenode上的#auraphp聊天。

服务

此包在Container中定义以下服务

  • aura/project-kernel:logger:一个Psr\Log\NullLogger实例

请注意,在内核级别设置的服务定义可能在项目级别被重置。

配置

尽管配置是项目级关注的问题,但每个Aura内核和项目都以相同的方式处理它。因此,我们在此提供配置文档以减少重复。

注意:本文件中的示例适用于Aura\Web_Project;根据需要将其替换为Aura\Cli_ProjectAura\Framework_Project

设置配置模式

使用$_ENV['AURA_CONFIG_MODE']设置配置模式,通过服务器变量或项目级别的config/_env.php文件。每个Aura项目都预定义了dev(本地开发)、test(共享测试/预发布)和prod(生产)模式。

配置文件位置

项目级别的配置文件位于项目级别的config/目录中。每个配置文件都是一个扩展Aura\Di\Config的类,代表一个配置模式。每个配置类有两个方法

  • define(),允许您在项目的Container中定义参数、设置器和服务;以及

  • modify() 函数允许您从 Container 中提取对象以进行程序性修改。(这发生在 Container 锁定之后,因此您不能在此处添加新服务或更改参数和设置器。)

两阶段配置系统按顺序加载库、内核和项目的所有配置类,然后运行所有 define() 方法,锁定容器,并最终运行所有 modify() 方法。

将配置模式映射到类

配置模式通过项目级别的 composer.json 文件中的 extra:aura:config 块映射到相关的配置类文件。条目键是配置模式,条目值是该模式使用的类。

{
    "autoload": {
        "psr-0": {
            "": "src/"
        },
        "psr-4": {
            "Aura\\Web_Project\\_Config\\": "config/"
        }
    },
    "extra": {
        "aura": {
            "type": "project",
            "config": {
                "common": "Aura\\Web_Project\\_Config\\Common",
                "dev": "Aura\\Web_Project\\_Config\\Dev",
                "test": "Aura\\Web_Project\\_Config\\Test",
                "prod": "Aura\\Web_Project\\_Config\\Prod"
            }
        }
    }
}

配置类通过该项目的 PSR-4 条目自动加载。

"common" 配置类始终加载,无论实际的配置模式如何。例如,如果配置模式是 dev,则首先加载 Common 类,然后加载 Dev 类。

更改配置设置

首先,打开相关配置模式的配置文件。要更改配置参数、设置器和服务,编辑 define() 方法。要定义完成后程序性地更改服务,编辑 modify() 方法。

添加配置模式

如果您想添加一个新的配置模式,比如 qa,您需要做三件事。

首先,在 config/ 中创建一个配置类。

<?php
namespace Aura\Web_Project\_Config;

use Aura\Di\Config;
use Aura\Di\Container;

class Qa extends Config
{
    public function define(Container $di)
    {
        // define params, setters, and services here
    }

    public function modify(Container $di)
    {
        // modify existing services here
    }
}
?>

接下来,编辑项目级别的 composer.json 文件,添加新的配置模式及其相关类。

{
    "extra": {
        "aura": {
            "type": "project",
            "config": {
                "common": "Aura\\Web_Project\\_Config\\Common",
                "dev": "Aura\\Web_Project\\_Config\\Dev",
                "test": "Aura\\Web_Project\\_Config\\Test",
                "prod": "Aura\\Web_Project\\_Config\\Prod",
                "qa": "Aura\\Web_Project\\_Config\\Qa"
            }
        }
    }
}

最后,运行 composer update,以便 Composer 对自动加载系统进行必要的更改。