Путь от новичка до профи: разработка CMS на фреймворке Kohana 3.3
Лет пять назад подсел на разработку сайтов, причем чисто из интереса к вебу. Хотелось осознать, как их делать и делать лучше, чем другие. Начиналось всё это, как и для большинства разработчиков, с простого познания HTML, CSS и, конечно, популярных CMS, таких как Joomla, Wordpress и Data Life Engine. По мере роста приходилось углубляться в Javascript и, конечно, в мой любимый сейчас PHP. Но все шло не так быстро, как хотелось. Тренируясь на простом, хотелось понять сложные вещи. PHP поначалу плохо давался, но характер взял верх и все же через некоторое время написал что-то вроде похожее на мини-социальную сеть.
Ну а затем пошло-поехало: ООП, MVC и, наконец, пришло время покорять фреймворки. На тот момент самыми известными для меня были Zend, Kohana и CodeIgniter. Позже узнал о Symphony и YII. Выбор пал на Kohana, т.к. для новичка была проще в освоении и с нормальной документацией. Ну и недостатков в принципе для себя не видел в этом фреймворке.
В свободное от основной работы время я осваивал Kohana на простых примерах чисто для расширения кругозора и расширения знаний в области ООП. Но так сложились обстоятельства, что по мере работы с другими CMS приходилось развиваться и пробовать что-то самому, используя ту самую Kohana.
Цель была одна – стать хорошим программистом и заниматься тем, чем нравится.
Пропустим месяцы и годы роста. Наконец я решил выпустить свои наработки в свет в виде полноценной CMS на фреймворке Kohana в бесплатный доступ под названием Oxidos CMS версии 1.0.0.
Главные критерии:
- Быстрая скорость работы;
- Простота в расширении функционала;
- Удобство использования и администрирования;
- Изюминка CMS;
- Универсальность.
Основным вдохновителем была CMS Opencart. Нравится её структура и удобство использования. Любителям Opencart возможно придет по вкусу моя CMS, т.к. имеется схожая структура и визуальная часть.
Итак, что мы имеем.
Основные возможности:
- Добавление мультиязычного контента;
- Добавление категорий неограниченной вложенности (используется алгоритм Nested Sets);
- Добавление новостей, статей и статических страниц;
- Используется ЧПУ (благодаря роутам Kohana);
- Используется ORM и Query Builder. Позволяет подключить CMS не только к Mysql;
- Разграничение прав доступа на каждый компонент админки;
- Статистика в админке от Google Analytics;
- Возможность менять шаблоны;
- Возможность выбора модуля кэширования данных;
- Возможность загружать изображения;
- Возможность формирования файла Sitemap.xml;
- Возможность добавления новых виджетов, а также возможность расширения функционала не в ущерб производительности;
- И другие компоненты, с которыми можно ознакомится на сайте.
Что скрывается под капотом:
- Kohana 3.3 – является ядром CMS. Это означает, что любой, знающий концепцию MVC или HMVC может без труда понять, как все работает. Особенно просто все будет «коханщикам»;
- Twitter Bootstrap 3 – фреймворк используется для шаблона админки. Очень мне понравилось с ним работать, а особенно при использовании LESS. Исходники также доступны для дальнейшего изменения стилей. В дальнейшем планируется и видимую часть сайта переделать на него;
- Summernote – текстовый редактор в админке, также использующий Bootstrap компоненты. Очень удобен в настройке и использовании;
- Jstree 3– библиотека для представления дерева из каталогов и файлов. Используется в файловом менеджере;
- Ну и конечно популярные библиотеки jQuery и jQuery UI.
Системные требования:
- Веб сервер (желателен Apache);
- PHP (начиная с 5.3.3);
- Curl включен;
- База данных MySQL (начиная с 4.1);
- Расширение MySQLi;
- Расширение IonCube (поскольку закодировано 2 файла: Core.php и Encrypt.php в целях безопасности).
В ходе обучения и разработки познается много нового и интересного и, тем самым, это способствует дальнейшему развитию и росту.
Цель данной статьи – познакомить вас с еще одним инструментом, который возможно будет интересен или целиком, или его отдельно взятыми частями.
Вывод
Oxidos CMS – бесплатная мультиязычная система управления контентом для создания сайтов-визиток, блогов и порталов. Будет интересна любителям Opencart и разработчикам сайтов, а также разработчикам собственных проектов.
Буду рад, если сообщество «хабра» хоть как-то отреагирует на CMS и даст советы или критику. Готов признать, что CMS не совершенна, как и большинство других первых версий продуктов, но стремится к этому нужно. Ошибки и советы помогут развиваться мне дальше как программисту.
Ссылки на проект:
Ссылки на используемые библиотеки и фреймворки:
- Kohana Framework
- jstree
- Twitter Bootstrap
- Super Simple WYSIWYG Editor on Bootstrap
- Attractive JavaScript plotting for jQuery
- File Upload widget with multiple file selection
- Lazy Load Plugin for jQuery
- The iconic font and CSS toolkit
- jQuery
P.S. Хочу выразить благодарность вдохновителям и учителям, которые мне помогли получить знания и разобраться в этом нелегком деле: