Eludia.php

Материал из Eludia
Перейти к: навигация, поиск

Изначально Eludia-проекты реализовались на платформе Linux / Apache / Perl. Это обеспечивало большую эффективность разработки и простоту поддержки. Однако на определённом этапе нам пришлось отказаться от ряда заказов в связи с ограниченным распространением нашей излюбленной платформы. Тогда возникла идея перевести Eludia на PHP и при этом расширить круг потенциальных заказчиков сразу двумя способами:

  1. снизить стоимость внедрения, позволив размещать системы на дешёвом PHP-хостинге;
  2. преодолеть неадекватность портации mod_perl под Windows, используя родной ISAPI PHP модуль под IIS.

Технически задача портации решена до стадии гамма-версии. Во всяком случае, титульная часть нашего сайта http://eludia.ru (и front-, и back-end) использует Eludia.php.

Тем не менее, коммерческого использования Eludia.php пока не нашла по ряду объективных причин:

    1. серьёзные заказчики не рассматривают дешёвый публичный хостинг как вариант размешения своих корпоративных информационных систем;
    2. для простых стандартных публичных сайтов существует большое число хорошо известных конкурирующих открытых продуктов (сами мы, например, используем MediaWiki);
  1. в 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');
?>

Локальная конфигурация

Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Разработчику
Администратору
Инструменты