Об архитектуральных голах и о PHP

Об архитектуральных голах и о PHP

Я в прошлой жизни и в теперешней остаюсь все же PHP-разработчиком. И, как всякий уважающий себя PHP-программист, имею собственную систему управления сайтом. Ну, просто так заведено в отрасли, если уж ты связал себя с PHP , будь добр, напиши свой собственный web-framework.

По логике вещей, я должен бы был сделать отдельный сайт, посвященный своему продукту, создать там демо-версию, расхвалить эпитетами в превосходной степени преимущества своей системы, выгодные отличия от других (в сторону: таких же) систем, и обязательно указать количество того счастья, которое вы могли бы получить воспользовавшись моей системой или моими услугами.

Но поскольку кроме меня этой штукой мало кто интересовался, я и помалкивал. До этого времени. Нашлись таки люди, которые среди сотен и тысяч PHP-фреймворков выбрали для себя именно этот. Ну да Бог им судья, тут я вкратце все же расскажу об основных отличительных (или объединительных) моментах.

Упрощенный MVC

Существуют более полные и более красивые реализации MVC на php. Моя система не разрабатывалась исходно как MVC, поэтому не во всем следует этому паттерну.

Что есть. Есть идеология приложений: приложения состоят из разделов, разделы управляются модулями, модули организуют документы и манипулируют ими с помощью методов. То есть, понятие controller соблюдено, отражение запрошенного URL к коду, который будет его обрабатывать, присутствует. Компонент View редуцирован до минимума — фактически класс, оперирующий XSLT-шаблонами и через это заведующий всей визуализацией. Model также минимизирована до набора классов абстрактного доступа к базам данных и базовых операций CRUD, хотя полноценного ORM нет.

Тотальный XML

Много уже слов говорил на тему почему XML хорош в вебе и почему он особенно хорош, когда используешь php. Повторяться не буду. Вкратце, в системе везде где только можно, используется XML и XML-related технологии. С помощью XML, например, описываются документы, структура приложений, свободные формы, с помощью XML организуются древовидные ассоциации документов, с помощью XSLT визуализируются данные.

Динамический XSLT

Исторически так сложилось, что XSLT — это краеугольный камень всей системы. Когда-то давно начинал эксперименты с этой технологией, в свое время понравилось, и постепенно закрепилось. Так вот, за время работы сформировалось несколько установок с переносом части логики системы в XSLT вкупе с механизмами динамической сборки и наследования шаблонов. И это все — в архитектурных особенностях системы.

 

Конечно, это далеко не все... есть и несколько вариантов расширения функциональности модулей (через наследование, примеси, промежуточный общий класс), возможности к разработке мультиязычных сайтов (хоть я и ненавижу этот подход), возможности подключения «шкур» дизайна и много подобной требухи, что обычно сопровождает проекты такого плана.

 

И что дальше? Дальше — посмотрим. Уже сделано несколько десятков сайтов, уже часть из них закрылось, часть переделалось и проч. Уже есть люди, которым интересно. Уже есть несколько идей того, куда двигаться дальше.

Дело в том, что если три тысячи четыреста семдесят первый php-framework окажется востребованным, можно будет и лицензию ему подобрать красивую и выложить правильно и развивать как следует.

Стоит ли оно того? Вряд ли решать мне, потому что я ее уже имею и развивать видимо буду. Если только Groovy team окончательно не запудрит мне мозг и не сдернет в свою религию.

Комментарии (7)

mem: 1163 total: 11 module: 5 xsl: 3