dobrosite / dobrosite-kernel
DobroSite CMS Kernel
0.5.0
2018-10-12 09:57 UTC
Requires
- php: >=5.5.9
- symfony/config: ^3.4|^4.0
- symfony/dependency-injection: ^3.4|^4.0
- symfony/http-foundation: ^3.4|^4.0
- symfony/http-kernel: ^3.4|^4.0
Requires (Dev)
- behat/behat: ^3.0
- phpunit/phpunit: ^6.0
- symfony/process: ^3.4|^4.0
README
Ядро — узловая точка, связывающая вместе все используемые компоненты.
При разработке ядра сделан упор на следующие требования.
- Ядро должно быть легко встроить в имеющееся приложение (как правило в 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('...');