- PVSM.RU - https://www.pvsm.ru -
Всем привет, на Хабре уже вот как 6 лет и только сейчас решился написать свой первый пост, хотя до сих пор не уверен что это хорошая идея :)
Уже более 6 лет я занимаюсь разработкой web приложений, начинал с верстки, javascript, php, python и т.д., в общем за все время я прошел все этапы создания сайта от дизайна в фотошопе и заканчивая созданием полноценного сайта.
В 2012 году мне надоело использовать сторонние CMS, у одних был скудный API, у других проблемы с гибкостью шаблонов, в общем каждая система отнимала кучу времени на разработку модулей и мне пришла мысль создать свой велосипед, хотя это еще больший геморрой, но в нем я смогу сделать все как мне нравится, яжпрограммист.
Было решено писать не с нуля, а взять за основу пример реализации модулей из разных CMS, которые, как мне казалось, эффективно справляются со своей задачей, а также популярные готовые библиотеки, ну и вот список того, что вошло в систему:
Ну и небольшой список трудностей с которыми пришлось столкнуться за 2 года разработки системы в одиночку:
А теперь хочу представить вам свою OpenSource систему — KodiCMS [1], которой 15 августа уже исполнилось 2 года, за это время было сделано 2175 коммитов, закрыто 250 issue, правда многие были мной и созданы, работа над системой продолжается и сейчас.
К сожалению узким местом системы является документация, она есть, но ее очень мало (https://github.com/butschster/kodicms/wiki) и создание оной трудоемкий процесс, который мне уж не потянуть, а возможностей у системы, о которых стоит знать, очень много. :(
Разрабатывая CMS я старался как можно меньше менять код ядра kohana, вернее даже не так, папка system не тронута полностью, некоторые классы были расширены через модули и доработаны, но по сути это Kohana версии 3.3.2.
Система разбита на модули и плагины, изначальная задумка была реализовать связь модулей между собой через Observer's, на практике 70% модулей и плагинов именно через них и работают, что позволяет безболезненно отключить часть модулей, сам то я это правда не пробовал сделать, но надеюсь, что это так :)
В системе есть полноценный API, который поддерживает GET, POST, PUT, DELET запросы через ajax и напрямую, имеет свою структуру URl, доступ к нему разрешен через backend, либо через frontend с уникальным ключем. API также реализуется через контроллеры и экшены. Немного о нем можно узнать здесь [3].
Frontend работает через роут, который вызывается самым последним, в момент его вызова в БД происходит поиск страниц по url и вывод текущей страницы, все запросы кешируются по ключу и по тегу.
CMS использует модуль kohana — Cache для кеширования данных. Все типы кеша поддерживают теги кеширования. В системе кешируется большинство запросов:
Система расширяется при помощи плагинов, но плагин для системы — это тот же модуль, только он расположен в папке plugins и подключается только после активации через админ панель, но это полноценный модуль kohana, за исключением того, что он помимо файла init.php имеет еще frontend.php и backend.php, в которых можно включить дополнительный код, который должен выполняться в той или иной среде.
В общем это только начало, есть еще Почтовые шаблоны и события, выполнение задач через модуль kohana — Minion, но настройка через админ панель, гибридные данные, dashboard, конфиги, мета данные пользователя и т.д. И я очень хочу об этом всем рассказать и показать как все это работает.
Для ознакомления с системой существует демо-сайт: demo.kodicms.ru/ [5], просьба сайт не ломать, т.к. другие не смогут посмотреть его.
Youtube канал [6]
Репозиторий проекта: github.com/butschster/kodicms [7], последние обновления в ветке dev, также сущестует ветка unittest в которой появляются первые тесты, но опять таки не хватает на все времени. Присоединяйтесь к разработке ;)
В общем, тестируйте, используйте, присылайте свои идеи по развитию и доработке в любом виде, issue, pull-request, ЛС, skype, форум [8], комментарий
Спасибо за внимание.
Автор: ButscH
Источник [9]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/cms/71937
Ссылки в тексте:
[1] KodiCMS: http://www.kodicms.ru/
[2] Image: https://habrastorage.org/files/056/6bc/82b/0566bc82b3e844ed919d7dfeef2e9827.png
[3] здесь: https://github.com/butschster/kodicms/wiki/API
[4] Image: http://habrastorage.org/files/5b8/a5e/228/5b8a5e228a484d3ca87b587bffa8f004.png
[5] demo.kodicms.ru/: http://demo.kodicms.ru/
[6] Youtube канал: http://www.youtube.com/channel/UCgZ25N9C1F8uoTXZZK55mqQ
[7] github.com/butschster/kodicms: https://github.com/butschster/kodicms
[8] форум: http://www.kodicms.ru/forum
[9] Источник: http://habrahabr.ru/post/240665/
Нажмите здесь для печати.