Статьи

Интеграция PHP / веб-приложений

Я забыл, как я натолкнулся на этот документ сейчас и даже не могу сказать вам, кто автор (надеюсь, они сделают шаг вперед), но в любом случае это интересное чтение: Аспекты интеграции двух или более веб-приложений ( 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?