Аспекты реализации нового движка блога
В прошлой заметке я сформулировал основные требования к движку блога. Теперь пришло время в общих чертах разобаться с реализацией. На начальном этапе здесь можно сказать совсем немного, поэтому пост будет небольшим.
Технические требования
- Язык программирования: PHP 5.1+ В принципе, я мог бы себе позволить и использовать PHP 5.3, мигрировав блог на мою VPS, но я не вижу в этом большой необходимости, тем более, что хостинг от EOMY за много лет показал себя с лучшей стороны.
- СУБД: MySQL. Здесь выбор тоже практически очевиден: MySQL есть на любом хостинге и мне привычно с ним работать.
- Фреймворк: Yii Framework Выбор фреймворка — тема не простая, так что ее я прокомментирую отдельно.
- Миграция и обратная совместимость: весь контент должен быть перенесен и адаптирован к новому движку, все ссылки в постах должны остаться действующими, со старых URL постов должен быть редирект на соответствующие новые.
Yii Framework
На самом деле, для меня выбор фреймворка практически очевиден, поскольку я уже имел опыт разработки довольно сложного сайта на Yii Framework и он показал себя с лучшей стороны.
Помимо этого есть еще плюсы в его копилку:
- Фреймворк сам по себе написан очень хорошо и работает быстро
- Фреймворк быстро развивается и не отягощает себя поддержкой устаревших технологий (камешек в сторону CakePHP)
- Есть внушительный централизованный репозиторий расширений, которые реализуют наиболее сложные фитчи “из коробки”.
- Наконец, есть базовый скелет блога на Yii, на написании которого построен официальный тьюториал. Кроме того, я нагуглил довольно много попыток развить эту основу до состояния нормального движка, которые надо внимательно изучить и, возможно, взять за основу.
Этот вечер я посвятил просмотру репозитория расширений и нашел там много полезного для себя и будущего движка :-)
С чего начать?
Перечислю для истории все проекты, которые я рассматриваю как потенциальную базу для движка:
- Bliig — произвел на меня наиболее положительное впечатление, судя по всему более-менее серьезная разработка.
- YiiBlog — развитие Yii Blog Demo с официального сайта. Суда по всему, автор, как и я, затачивает его исходя исключительно из собственных пожеланий, которые немного расходятся с моими. Но все же он заслуживает рассмотрения, хотя и во вторую очередь.
- Yii BlogDemo Extended — другая попытка развить демо-приложение блога. К сожалению, развитие не имеет четкого направления и поэтому в нем появилась такая глупость как флеш-часы. Кроме того, проект уже год никак не развивается, поэтому он пригоден разве что для подсматривания идей решения разных задач, но не как полноценная основа.
- YiiApp — попытка содать универсальный каркас приложения на Yii. Попытка, судя по всему, достойная, но для меня не очень подходящая.
- yay-cms — простая CMS на базе Yii. В качестве основы для блога подходит плохо, но в отношении создания обычных сайтов проект интересный, поэтому заслуживает упоминания.
Кроме того, для всех этих проектов имеет место фактор априорного недоверия к неизвестным мне разработчикам, но это лишь второстепенный момент. В конце концов, мне все равно придется ознакомиться со всем исходным кодом движка.
Внимательное изучение этих проектов мне, видимо, еще предстоит, но я вижу два наиболее вероятных варианта:
- Взять за основу Bliig и танцевать от него.
- Взать за основу официальное демо, а найденные проекты использовать как шпаргалки для подсматривания решений.
Open Source
Я до сих пор еще не принял окончательного решения, но скорее всего движок будет приватным по двум причинам:
- Я не хочу тратить время на оказание поддержки по движку.
- Я допускаю, что в движке могут быть баги. Потенциальным взломщикам будет гораздо легче их найти, если исходники будут общедоступны.