Я уже писал о
назревшем рефакторинге в Stilllife. С тех пор у меня не было особенно времени заниматься кодом, но вот мысли всякие приходят. Я кажется, начал
понимать какая часть уже написанного кода является универсальным web-application framework, а какая специфична для решаемой задачи. Опять же принцип
Сайт это документ сформулровал.
Соответственно, становится понятным соотношение StillLife с MVC-паттерном.
1. Модель - ни разу не реляционная. Скорее более generic OO. Что неприятно. Но очевидно что свойство "однородные объекты могут иметь разный набор атрибутов" востребовано. Отношения между объектами в ER-модель тоже ни разу не укладываются.
2. Функциональность view существенно ограничена по сравнению с текущим MVC. Все что не описывается средствами html+css (вроде формата представления дат) уходит в описание модели.
3. Контроллер - фиксированный. Собственно, модель "сайт это документ" основана на том, что операции, которые людям нужно выполнять над объектами их сайтов в большинстве полностью описываются некоторым замкнутым набором действий вроде команд текстового редактора или набора функций электронной таблицы. Соответственно, набор операций допустимых над конкретным объектом специфицируется в модели.
Осталось придумать синтаксис описания модели чтобы был компактный и удобопонятный, и место для подключения плагинов-нестандартных контроллеров.
Список стандартных контроллеров уже более-менее понятен - объект можно создать (с использованием шаблона-формы), редактировать (им же) переместить (вот тут интереснее) и удалить.
Ах да, совсем забыл. Желающие изучить вопрос возможности установки StillLife на каком-нибудь хостинге могут взять и попробовать запустить на нем
вот этот скрипт. Он проверит наличие необходимых модулей и кое-что расскажет про них и про систему. В принципе, на нескольких хостингах, на которых его уже запускали, все модули, имеющие компилируемую часть обычно есть (POSIX, Storable, Math::BigInt, Digest::SHA1). Остальное, в принципе, без проблем ставиться даже на хостинг, куда есть только ftp-доступ.