Я забыл, как я натолкнулся на этот документ сейчас и даже не могу сказать вам, кто автор (надеюсь, они сделают шаг вперед), но в любом случае это интересное чтение: Аспекты интеграции двух или более веб-приложений ( application/pdf
Некоторое время назад нашел ссылку через один из форумов / списков рассылки Галереи , благодаря случайному результату поиска чего-то совершенно другого в Google.
В любом случае, если не учитывать потерю памяти, это небольшая «исследовательская статья», написанная одной из команд разработчиков Gallery2 о том, как выполнять интеграцию с веб-приложениями. Если вам интересно, Gallery — это (возможно, самое) популярное приложение для создания галереи изображений на PHP. Gallery2 полностью переписан и был выпущен осенью прошлого года (./ объявление здесь ).
Возвращаясь к интеграции, это область, которая еще не решена IMO, будь то на PHP или других веб-платформах. Основное требование часто возникает из-за того, «Как я могу предоставить посетителям моих сайтов единый вход на мой форум / вики / блог / галерею и т. Д.?».
В статье gallery2 определены следующие ключевые «аспекты» для интеграции веб-приложений (выбор элементов имеет специфический для PHP аспект, но он все еще широко применим к любой веб-платформе);
- Отношения Мастер-Раб и Общение
- Управление пользователями и группами
- Управление сессиями
- Аутентификация
- Генерация URL
- Визуальная интеграция
- (Управление разрешениями)
- Контроль доступа
- Поиск и другие интерфейсы API
- Столкновения пространства имен
- Окружающая обстановка
Пусть это говорит само за себя. На самом деле этот документ теперь нуждается в расширении с более подробной информацией и предложениями о способах решения этой проблемы общим способом (если это вообще возможно), который может быть применен к любому (PHP) приложению.
С практической точки зрения, еще один способ взглянуть на интеграцию веб-приложений — где это сделать, и на каком уровне? Это в значительной степени сводится к;
- По данным: например, взломайте логику входа в приложение Y, чтобы использовать таблицу «пользователи» в App X. Часто это выглядит как самый простой способ, но на практике это может привести к необходимости переписывать (или копировать / вставлять) важные части приложения Y и означает, что вам нужно отслеживать свои хаки . Каждый раз, когда я приходил сюда, достигал точки «Было бы меньше работы, чтобы написать свой с нуля».
- В коде: API, smart включает в себя и т.д. Это, как я полагаю, обычный путь, но он требует от групп разработчиков приложений немного подумать «из коробки» и подумать, как и где другие приложения могут подключаться к своим. В PHP это происходило по-разному: от fudforums fudapi.inc.php (включаемый скрипт PHP, содержащий такие функции, как
fud_fetch_full_topic
фреймворка Horde «COM», до « встроенного» режима Serendipity и dwBliki . На самом деле эта тема нуждается в долгом, долгом обсуждении, которого я собираюсь избегать.
Но пока я здесь, на полусвязанной ноте — Scarlet ( en ) контейнер внедрения зависимостей для PHP. Кстати, это не единственная реализация PHP DI. Посмотрим, что скажет Павел в пятницу . Тем временем у Джеффа что-то намечается - В HTML: например, в способе Sitemesh (или PHP Mesh — захватывайте и объединяйте свою HTML-серверную часть. XSLT также может применяться здесь. Также относительно легко, но, я полагаю, легко сломать).
- … и еще один, я думаю — Greasemonkey — выдвинуть проблему в браузер.
Во всяком случае — судя по результатам , команда Галереи, безусловно, может поделиться некоторыми уроками.
Заканчивая концепцию: как насчет того, чтобы сделать 2006 год годом, когда мы действительно добились интеграции приложений PHP?