dobrosite/dobrosite-kernel

DobroSite CMS 内核

0.5.0 2018-10-12 09:57 UTC

This package is auto-updated.

Last update: 2024-09-13 02:43:48 UTC


README

内核 —— 连接所有使用组件的节点。

内核开发侧重以下要求。

  1. 内核应易于集成到现有应用程序中(通常为CMS)。

开箱即用的内核

要访问内核,只需连接 Composer 类加载器即可

<?php

use DobroSite\CMS\Kernel\ScriptKernel;

require_once 'vendor/autoload.php';

$service = ScriptKernel::getInstance()->getContainer()->get('...');

允许使用

  1. 依赖项容器;
  2. 配置文件。

在此过程中,内核使用以下值

  • 环境名称(Kernel::getEnvironment()) —— prod
  • 调试模式(Kernel::isDebug()) —— 关闭;
  • 根目录(Kernel::getRootDir()) —— 包含 composer.lock 文件的目录;
  • 缓存目录(Kernel::getCacheDir()) —— <系统临时文件夹>/<根目录 sha1 哈希>/cache/<环境名称>
  • 日志目录(Kernel::getLogDir()) —— <系统临时文件夹>/<根目录 sha1 哈希>/logs
  • 配置文件
    • config/services.yaml;
    • config/services_<环境名称>.yaml.

自定义内核配置

如果上述默认值不适用,您可以通过类 Configuration 来覆盖它们。为此,建议创建一个单独的文件,例如名为 bootstrap.php,如下所示

<?php

use DobroSite\CMS\Kernel\Configuration;
use DobroSite\CMS\Kernel\ScriptKernel;

require_once 'vendor/autoload.php';

$configuration = new Configuration();
$configuration
    ->setConfigDir(__DIR__.'/config');

ScriptKernel::setConfiguration($configuration);

现在,您可以将其连接到所有相关文件,而不是 autoload.php

<?php

use DobroSite\CMS\Kernel\ScriptKernel;

require_once 'bootstrap.php';

$service = ScriptKernel::getInstance()->getContainer()->get('...');