Как программировать «модульно» на PHP (паттерны программирвования)?
Здравствуйте.
Подскажите как правильно организовать код на сервере.
Вообщем поставил себе такую задачу, сделать эдакий старт-кит для работы с попапами, содержимое которых будет подгружаться AJAX'ом.
(планирую быстро его копировать из проекта в проект и работать, (в основном для сайтов визиток нужен будет, для сайтов с минимальным бекендом))
1) Выбрал основной плагин попапов (== модальных окон)
2) У основного плагина есть событие "перед открытием", там-то я формирую объект параметров из data-* для отправки на сервер.
ИТАК, вот далее хочу узнать правильный путь (ссылки, примеры..) программирования, как планировал я:
1) модалка при инициализации будет стучаться на файл ajax.php
2) в ajax.php будет код, который будет принимать на вход как раз таки переданыне параметры (название компонента, шаблон модалки, параметры чего-нибудь) эдакий роутер для модалок (вот как это правильно запрограмиировать.. чтобы не функцией в этом же ajax.php.... хочется как то более правильно чтоли, типо IncludeComponent('имя_компонента', 'шаблон', 'параметры') ? )
3) этот роутер.. в зависимости от пришедшего шаблона в параметрах будет вызывать другой "компонент", который как раз работает с базой... он будет принимать переданые параметры и возвращать верстку в роутер... (соответственно вопрос тот же... как организовать программирование таких вот модулей... чтобы вызывать из любого метса можно передавать параметры и они по умолчанию что-то возвращают (все тот же вопрос_1) IncludeComponent.....)
4) возвращаемся к роутеру... который принимает верстку "компонента(модуля)" и передает ее в ответ на AJAX запрос, который был отправлен по событию "перед открытием" модалки.
те component_modal - направляет код в зависимости от параметров в нужную папку для генерации верстки модалки(component_modal_inner_content )... потом все(HTML или JOSN ) "всплывает" как ответ на AJAX
1. Все открытия окон - надо делать на клиенте - это экономит время реакции на событие.
2. С сервера - "тянем" только динамические данные или результаты обработки для отображения и получаем их в виде JSON.
3. Все статические - в шаблоне должны быть в виде JSON-массива.
4. Вся HTML-разметка и шаблонизация - задаётся в клиентском коде.
5. При необходимости доступа к БД, ajax.php сразу подключается к ней при первой же необходимости работы с данными в БД.
6. Правильно запрограммировать: это "дерево" зависимостей источников AJAX-данных - многомерный массив.
7. Про систему клиентского и серверного кэширования - не забудьте.
Спасибо за ответ.
Я понимаю, что нужно тянуть только динамические данные, я так и буду делать конечно же.
Мне не хватает именно опыта по части "кодинга",
1) не знаю как написать универсальный класс(метод) подключения модуля по его имени.... (на вход имя модуля и параметры для модуля, а на метсе вызова этого универсального класса был бы ответ, который генерирует вызываемый модуль)
2) как написать сам модуль (файл логики-файл шаблона получается должен быть)
модуль - папочка с файлами....
"как написать" - организовать структуру, каким паттерном пользоваться..
вот, наверное, более правильные вопросы.
Александр Панков: это никто не посдкажет, т.к. все зависит от специфики. Самое простое - Вам нужно пользоваться динамической загрузкой и контролем этих динамических модулей не по таймеру а только по событию окончания загрузки!