October CMS мой отзыв, как с этим работать?

Всем привет давно решаюсь написать статью про October CMS и вот на меня снизошло вдохновение. Сразу говорю, это больше краткий обзор чем какой-то полноценный гайд. Я не буду рассказывать как написать плагин или компонент. Я просто ознакомлю вас с системой и ее возможностями. Для начала давайте разберемся, что такое October CMS.

Что такое October CMS.

October позиционируется как система управления содержимым нового поколения. И действительно, в Октябре реализованы лучшие моменты двух систем Modx и Wordpress(мое мнение). Основа October CMS - это популярный на рынке PHP фреймворк Laravel. Если вы ранее работали с Laravel, то разобраться как работает Октябрь, будет очень просто.

Одна из плюшек October CMS - это Composer из коробки.

На October CMS я разработал 3 проекта и скажу, что он понравился не только мне, но и заказчикам. При грамотном подходе можно красиво оформить в админке любой модуль. Обслуживать сайт сможет даже ребенок. К интерфейсу админки разработчики October CMS подошли очень серьезно. Все слишком удобно и городить костыли просто нет необходимости.

Что позаимствовал October CMS у "Коллег".

От Modx October CMS взял концепцию шаблонов. Вы увидите:

  • страницы(modx-ресурсы),
  • шаблоны, фрагменты(modx-чанки),
  • содержимое(просто текст, в modx этого нет),
  • ресурсы(файлы темы),
  • фрагменты(modx-сниппеты)

На самом деле реализация совсем другая. Например фрагменты vs сниппеты может и похожи, но их никак нельзя в полной мере сравнивать, так как принцип работы немного другой. Но и тот и этот служат для обработки или вывода какой-либо информации.

Но вот тип контента - содержимое, невиданное диво. Оно может содержать только текст или HTML код, PHP код и Twig теги в нем не работают.

Единственная похожая черта с Modx это подключение чанков, только вместо самописного шаблонизатора в Октябрь зашили Twig. И как мне кажется нисколько не ошиблись. Например в Modx я вместо стандартного шаблонизатора использую Fenom, который внедрился благодаря Василию Наумкину.

Самая заметная разница между October и Modx кроется в реализации системы шаблонов. В Modx элементы шаблона лежат в базе данных и кэшируются, в October все файлы остаются файлами. Тут только я должен немного оговорится так как в новых Modx есть возможность сделать элементы шаблонов статическими, но тогда вам придется постоянно чистить кеш во время разработки.

От Wordpress October CMS взял только концепцию установки шаблонов и плагинов. Например в Modx шаблон интегрируется вручную. Октябрь может установить через репозиторий как в Wordpress.

Так же стоит отметить очень классный медиаменеджер Октября. Я не припомню ничего лучшего, что мне удалось видеть до этого. Все красиво как в Wordpress, только вы можете работать с папками, теперь все очень просто можно распихать по категориям и не искать среди сотен изображений нужный медиафайл.

Несмотря на схожесть концепции реализация абсолютно другая. По факту вы работаете с ООП по ставшей уже стандартом моделью MVC. В Wordpress вы писали гору кода в function.php или подключали доп. файлы, иногда ставили Composer и подтягивали нужные пакеты с последующим ручным подключением.

С Modx все проще, пока не приходилось выполнять масштабирование проекта, порой админка modx обрастала дополнительными полями и превращалась в кучу хлама, а разработчик с трудом понимал где какая твшка в куче категорий, которые мы использовали для разбивки полей по вкладкам в админке.

В October все дополнительные поля и вкладки модуля отображаются красиво и аккуратно.

Так выглядит страничка - добавить запись(ее часть).

October CMS взял лучшее из вышеперечисленных систем и переосмыслил все. По возможностям October больше фреймворк чем CMS. Соответственно и сложность разработки другая. Если вы толком не знаете PHP, а именно ООП, то пока не стоит делать реальный проект. Но попробовать однозначно стоит.

Для Октября написали великолепный модуль Builder, который позволит быстро набросать каркас плагина и в последующем его дорабатывать, например изменить поля ввода в админке. Конечно многое придется написать ручками, но в любом случае это облегчит разработку.

Все сложное просто Ajax в October CMS

Одна из самых интересных фишек. На самом деле мне данная идея понравилась, но я и неплохо справлялся с jQuery Ajax, однако стоит отметить простоту использования.

Как официально заявляет команда October CMS, в системе встроен Ajax фреймворк. Вариантов его использования 2.

Data attributes API - вариант для ленивых, принцип в том, что для элементов вы указываете нужный атрибут data.

Например мы нажмем кнопочку Delete, в наш контроллер прилетит передаваемый id и запустится метод onDelete. Например этот метод удалит запись с id = 7.

JavaScript API - Более продвинутый метод. В функции .request() указываем к какому методу обращаемся, далее передаем параметры. Данная JS реализация повторяет предыдущий функционал, который мы сделали с помощью Data attributes API. Тут мы добавили только параметр confirm, он служит для подтверждения выполнения функции пользователем. В параметре data мы передали id записи.

$('form').request('onDelete', { confirm: 'Вы действительно хотите удалить запись?', data: {id: 7} })

Рекомендую посетить русскоязычное сообщество и страницу русскоязычной документации.

Надеюсь данная статья была полезна для вас. Я не хочу сказать, что нужно работать только с Октябрем, а остальные CMS/CMF полного Г/Е. Просто для каждого проекта своя платформа. Я же рекомендую попробовать October CMS в своих проектах. Скорее всего он вам очень сильно понравится, а так же сделает воронение вашим бубенцам. На этом у меня все. Спасибо за внимание и до новых встреч!