Для подключения 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.
Настройка проводится всего лишь единожды при внедрении фреймворка и редко меняется при изменении параметров подключения и появлении новых подключений.
Для управления базой данных
<?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
Для управления почтовыми подключениями
<?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 используется только на сайтах типа приложения с 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. Для корректной работы 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