Eludia.php
Do (обсуждение | вклад) (→Локальная конфигурация) |
Do (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
+ | {{RightTOC}} | ||
+ | |||
Изначально Eludia-проекты реализовались на платформе Linux / Apache / Perl. Это обеспечивало большую эффективность разработки и простоту поддержки. Однако на определённом этапе нам пришлось отказаться от ряда заказов в связи с ограниченным распространением нашей излюбленной платформы. Тогда возникла идея перевести Eludia на PHP и при этом расширить круг потенциальных заказчиков сразу двумя способами: | Изначально Eludia-проекты реализовались на платформе Linux / Apache / Perl. Это обеспечивало большую эффективность разработки и простоту поддержки. Однако на определённом этапе нам пришлось отказаться от ряда заказов в связи с ограниченным распространением нашей излюбленной платформы. Тогда возникла идея перевести Eludia на PHP и при этом расширить круг потенциальных заказчиков сразу двумя способами: | ||
Версия 13:28, 14 февраля 2008
Изначально Eludia-проекты реализовались на платформе Linux / Apache / Perl. Это обеспечивало большую эффективность разработки и простоту поддержки. Однако на определённом этапе нам пришлось отказаться от ряда заказов в связи с ограниченным распространением нашей излюбленной платформы. Тогда возникла идея перевести Eludia на PHP и при этом расширить круг потенциальных заказчиков сразу двумя способами:
- снизить стоимость внедрения, позволив размещать системы на дешёвом PHP-хостинге;
- преодолеть неадекватность портации mod_perl под Windows, используя родной ISAPI PHP модуль под IIS.
Технически задача портации решена до стадии гамма-версии. Во всяком случае, титульная часть нашего сайта http://eludia.ru (и front-, и back-end) использует Eludia.php.
Тем не менее, коммерческого использования Eludia.php пока не нашла по ряду объективных причин:
- серьёзные заказчики не рассматривают дешёвый публичный хостинг как вариант размешения своих корпоративных информационных систем;
- для простых стандартных публичных сайтов существует большое число хорошо известных конкурирующих открытых продуктов (сами мы, например, используем MediaWiki);
- в 2007 году по инициативе Microsoft был разработан FastCGI-модуль для IIS. Основное его предназначение — запуск PHP-скриптов, однако он вполне может использоваться с интерпретатором любого другого динамического языка программирования, в частности, Perl5. Что позволило нам использовать Eludia.pm в комбинации с IIS.
Таким образом, в настоящее время проект активно не развивается, хотя определённые перспективы у него, возможно, имеются. Мы приглашаем всех желающих ознакомиться с описанием дистрибутива Eludia.php, использовать любые его составляющие по своему разумению и обращаться к нам с любыми вопросами на эту тему.
Системные требования
Eludia.php может использоваться совместно с любым WEB-сервером, который так или иначе поддерживает формирование ответов при помощи языка PHP, будь то встраивание интерпретатора в сам сервер или использование внешнего процесса через интерфейс fastCGI или хотя бы CGI (что не рекомендуется по соображениям эффективности).
Для функционирования приложения на базе Eludia.php необходима реляционная СУБД. В настоящее время поддерживается только MySQL версии 4.0 и выше. Если вам необходимо использовать иную реляционную СУБД, доступную из PHP, то разработка соответствующего переходника для Eludia.php — дело одного рабочего дня.
Текущая версия Eludia.php функционирует на базе PHP 5.2.4 и 5.2.10. Ядро должно быть совместимо со всеми релизами 4.х и 5.х, хотя презентационный модуль для front-end сайта, входящий в дистрибутив, требует PHP 5.
Требования к операционной системе сервера ограничиваются возможностью установить вышеперечисленное ПО: WEB-сервер и Perl5 с доступом к выбранной СУБД. Таким образом, можно использовать любую UNIX-подобную ОС или Windows семейства NT.
Устройство
Обработчики
В Eludia.php воспроизводится понятие "обработчика запроса", обеспечиваемое в Apache / mod_perl командами SetHandler / PerlHandler и недоступное на PHP-хостинге, в особенности без права редактирования httpd.conf. Достигается это прописыванием
DirectoryIndex index.php ErrorDocument 404 /index.php
в файл .htaccess корневой директории. Таким образом, все HTTP-запросы, приходящие на хост, обрабатываются в index.php. Это позволяет реализовать внятные человекочитаемые URL (типа /about/portfolio/higher_technologies вместо /index.php?rub1=13&rub2=66&pageid=6545), однако вызывает необходимость самостоятельно разбираться с некорректными запросами, в частности, на несущеаствующие файлы.
Если требуется переопределить обработчик для какой-либо поддиректории, достаточно разместить там локальный .htaccess со строкой
DirectoryIndex index.php
Смысл обработчика-файла заключается только в том, чтобы:
- загрузить конфигурацию;
- загрузить библиотеки;
- запустить обработчик-функцию с фиксированным именем приложения (по нему определяется, в частности, пришёл ли запрос на back или front).
<?php require 'site_config.php'; require $GLOBALS [preconf] [core_location]; handler ('public_site'); ?>
Локальная конфигурация
Параметры подключения к БД и прочие константы, специфические для текущей установки, доступны в качестве компонент хэша $GLOBALS [preconf]. Он должен устанавливаться в файле /site_config.php:
$GLOBALS [preconf] = array ( core_location => 'eludia/core/eludia.php', app_location => 'eludia', db => array ( driver => 'mysql', host => 'localhost', name => 'db', user => 'user', password => 'pass', ), ... ),