Подключение

Для подключения Core Framework - достаточно включить в проект главный класс через require

require('core/core.php');

Best practices: Желательно расположить папку с фреймворком на уровень выше приложения, чтобы

1. Исключить возможность доступа к файлам через HTTP

2. Давать доступ на проект через FTP без доступа к модульному классу

3. Обеспечить единую конфигурацию для всех проектов, подключений, настроек и т.д.

 

Best practices: Рекомендуется добавить путь с корой в include_path, это огородит вас от конфигурации сервера и расположения главного файла относительно пути с фреймворком

Создание проекта через композер

composer create-project kosmom/core-app project-name

Добавление коры к существующему проекту через композер

composer require kosmom/core

Репозиторий может быть подключен как внутри проекта, так и вне проекта. В зависимости от организации структуры програмных модулей в вашей системе.

Настройка

Для корректной работы - убедитесь что в настройках Apache для конктерного домена отключен MultiView.

Для настройки фреймворка для вашей системы - используйте измените конфигурацию в файлах, лежащих в папке global-config.

Настройка проводится всего лишь единожды при внедрении фреймворка и редко меняется при изменении параметров подключения и появлении новых подключений.

db.php

Для управления базой данных

<?php
self::addConnect('connector_name',array(
'host'=>'localhost',
'login'=>'root',
'password'=>'',
'name'=>'db_name',
'type'=>'mysql',
'persistent'=>true,
'charset'=>c\core::UTF8,
));
self::addConnect('another-connector-name',array(
'host'=>'localhost',
'login'=>'root',
'password'=>'',
'name'=>'schema1',
'type'=>'oracle',
'persistent'=>true,
'charset'=>c\core::UTF8,
));

Где connector_name - название подключения, ключевое слово, которое будет использоваться для обращения к данной базе от имени данного пользователя

Поддерживаются следующие типы баз данных type - mysql, oracle, mssql

Если вы используете несколько сред - на конце файла необходимо добавить идентификатор среды dbd.php, dbp.php

mail.php

Для управления почтовыми подключениями

<?php
self::$mail_config['portal']=array(
'host'=>'mail',
'username'=>'portal',
'password'=>'portal',
'from'=>'portal',
'type'=>'apache'
);
self::$mail_config['mailbox']=array(
'host'=>'smtp.servername.ru',
'username'=>'mailbox_name@site.ru',
'password'=>'secretpassword',
'from'=>'mailbox_name@site.ru',
'type'=>'smtp'
);

Где portal и mailbox - ключевые слова для подключения указаным методом к указаному почтовому ящику

Поддерживаются следующие типы почтовых протоколов - type = apache, smtp

mvc.php

mvc используется только на сайтах типа приложения с mvc модулем и skeleton шаблоном. В файле указываются зависимости и места положения библиотек js и css в случае их использования

В качестве примера приведен базовый набор из самых популярных библиотек, вы можете добавить любые другие самостоятельно по аналогии

 

<?php
self::$css_dict['jqueryui']=self::$css_dict['jquery_ui']=self::$css_dict['jquery-ui']='http://link-to-folder/css/jquery_ui.css';
self::$js_dict['jquery']='http://link-to-jquery/js/jquery.js';
self::$js_dict['fancybox']=array('url'=>'http://link-to-fancybox/jquery.fancybox.js','requires'=>'jquery');

Настройка значений по умолчанию

Хоть мы и подключили наш фреймворк, нам может потребоваться указать значение по-умолчанию для нашего локального проекта. Мы можем сделать это сразу после подключения следующим способом

c\core::$data['db']='my_default_db';
c\core::$data['mail']='my_default_mailbox';
c\core::$charset=c\core::WINDOWS1251; // либо c\core::UTF8 по умолчанию
c\core::$env='p';
c\core::$lang='ru';
c\core::$debug=false;
c\core::$version='1.1';

Теперь мы можем полноправно использовать полностью функциональный Core Framework в вашем проекте

Настройка разных сред

Вы можете настроить фреймворк для работы в разных средах: Среда для разработки (d),Тестовая (q), продуктивная (p), или самостоятельно настроить свои какие угодно среды.

Лучший способ настроить разные среды - создать некий загрузочный файл с предустановками и разместить его в global-config. Назовем файл core.php

Теперь подключать нужно именно его

require 'core/global-config/core.php';

В данном блоке вы располагаете контроллер, который разделил бы среды относительно настроек сервера. Для каждрой среды. Пример контроллера может быть выполнен следующим образом

<?php
if (preg_match('|^/www/data|', $_SERVER['DOCUMENT_ROOT'])){
	require __DIR__.'/corep.php';
}else{
	require __DIR__.'/cored.php';
}

Теперь остается расположить в той же папке файлы corep.php и cored.php, в каждой из которых прописать предустановки, которые влияют на поведение. Самый главный из параметров - отделение среды

<?php
require(__DIR__.'/../core.php');
core::$env='d';

PHP в режиме FPM

Для ускорения работы и избавления от тяжелого апача - существует возможность настроить PHP работать из режиме FPM. Для корректной работы MVC - в конфигурации NGINX следует прописать следующие директивы

server {
    listen         %ip%:%httpport%;
    listen         %ip%:%httpsport% ssl;
    server_name    %host% %aliases%;
    root       "%hostdir%";
    index      index.php;
    
    location ~ /\. {deny all;}

    location / {
        try_files $uri $uri/ /index.php?$query_string; 
    }
    location ~* /app/.+\.(php|phtml)$ {
        deny all;
    }
    ...
}
Соответственно, подключая PHP напрямую через NGINX - есть возможность настроить несколько серверов через балансировщик и обрабатывать большие нагрузки

Создано при помощи сервиса Core CMS