Posterous theme by Cory Watilo

О фреймворках

Фреймворк - это отнюдь не готовое решение и не панацея. Это как linux. Есть коробка с инструментами и заготовками. И из них этими инструментами надо изготовить хорошую систему. Нет - всегда пожалуйста, бери и делай сам. На отдыхе я смог хорошенько пораскинуть мозгами и полностью прийти к той идее, с которой мне придется работать в ближайшем будущем. Идея заключается в следующем: для хорошего (быстрого, качественного, удобного) создания сайтов с системами управления требуется создать не просто шаблонную систему, а, пардон за каламбур, систему шаблонов. Так, в процессе создания сайтов повсеместно возникает надобность в автоматизации создания неких схожих элементов. Основной головной болью есть cms. Я пошел по простому пути (и не самому лучшему) - система редактирования с сайтом едина. Т.е. она вживляется в мясо, и в разных сайтах основная работа - перепиливание cms под текущие требования и задачи. И это начинает надоедать. Так я прихожу к мнению, что она должна быть отдельной. Но ее ведь тоже придется пилить. Вопрос, насколько сильно... Благодаря тому, что умные люди эти грабли прошли, мы можем воспользоваться плодами их трудов и сделать cms гибкой и требующей минимального переконфигурирования и модификации. Так, это одно из заметных пунктов во фреймворке symphony. Я этот самый фреймворк еще не использовал, но как только опробую - поделюсь своими впечатлениями. Пока в нем вынесено в примерах на первый план самое ценное для меня - валидация данных из html-форм, или любых других источников данных. Сделано решение весьма элегантно, в отличие от моего (у меня подход был бессистемным, что есть огромный минус). Со stassh мы обсуждали, что данные должны несколько модифицироваться для различных представлений (убирание слешей при показе как html и, наоборот, экранирование при построении sql-запросов). Мне интересно, как же это реализовано в симфони. Я не хочу сказать, что я бросаю то, что делал и начинаю использовать все готовое написанное до меня. Отнюдь. Я буду модифицировать написанные мною куски движка и буду пытаться создать хорошую систему, которая понравится в первую очередь мне (а я придирчивый). Я понял, что долгое время я изобретал велосипед. Но этот опыт отнюдь не негативный, даже наоборот - теперь я знаю, как он устроен. Краткое ИМХО о фреймворках. Из существующих и попавшихся на глаза, я могу отметить следующие: symphony, fusebox, cake, zephyr. Первый и последний держат аякс (последний для него и разрабатывался), и в отличие от fusebox они писались для php (Fusebox же ориентирован на coldfusion - но с другой стороны это позволяет ему использовать не только PHP и CF, а теоретически и другие языки). Насчет cake ничего сказать не могу, просто слышал о нем хорошие отзывы. Еще раз повторюсь: на текущий момент я не работал и не рассматривал слишком подробно не один из них. Но время пришло...