Пробовал
Luzhnikovskiy 19.02.2003 16:00
Не точно так, но все новые проекты на Theatre.Ru создаются по такому принципу. Пример -
Et-CeteraТолько вместо URL используется URL.match.
На старте таблица грузится (из файла), парсится на предмет динамических URL'ов (группы объектов, определяемые из базы, если нужно).
Подключаются нужные классы.
Найденное ^^{$className}::${constuctorName}[params] process'ится в класс $base. Параметры - "нормализованный" (с отрезанными index.* и/или query_string) $request:uri, hash с параметрами/опциями сайта (лежат в другом файле) и некоторые служебные параметры.
В нем вызывается ^base.[$drawMethodName][params].
Результат трансформится.
Кэшируется.
Структура моих данных такова, что в зависимости от группы урлов у меня идет выборка по вполне определенным запросам (меняется только одно/два равенства в запросе) из вполне определенных таблиц. Посему, меня такой подход вполне устраивает. Сборка сайта театра (со стандартными text-only шаблонами) занимает 15-30 минут (в зависимости от сложности структуры) - были бы данные в базе ;-)