Ядро — узловая точка, связывающая вместе все используемые компоненты.
При разработке ядра сделан упор на следующие требования.
- Ядро должно быть легко встроить в имеющееся приложение (как правило в CMS).
Для того, чтобы получить доступ к ядру, достаточно подключить загрузчик классов Composer:
<?php
use DobroSite\CMS\Kernel\ScriptKernel;
require_once 'vendor/autoload.php';
$service = ScriptKernel::getInstance()->getContainer()->get('...');
Позволяет использовать:
- контейнер зависимостей;
- файлы настройки.
При этом ядро использует следующие значения:
- имя окружения (
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('...');