Честный обзор на October CMS (Laravel)

Одна из самых известных CMS на базе Laravel — October CMS, которая создана на базе уже устаревшего Laravel 5.1. Но дело в том, что это не пакет или надстройка над самим фреймворком — это независимое решение, которое использует Ларавел как ядро в своих целях. Сам Laravel полностью переписан и переделан именно на уровне самого ядра фреймворка.
Вот так выглядит админка October CMS изнутри

Преимущества October CMS

  • полностью готовая админка, с самым современным дизайном
  • модульная система подключения плагинов с автоустановкой
  • наличие готовых плагинов для разных задач
  • простое создание собственных форм в админке через YAML файл
  • простота связывания зависимых таблиц, полей и форм
  • богатый функционал по настройке сайта из коробки
  • развертывание сайта в один клик

Недостатки October CMS

Недостатки перечёркивают абсолютно все плюсы:

  • Этот проект создан двумя программистами-энтузиастами, которые изобрели свой красивый велосипед. Ждать частых релизов, как и мелких обновлений и фиксов не стоит.
  • Над проектом работает всего 188 контрибьюторов. Т.е. это достаточно мёртвый проект.
  • Вытекает из первого и второго пункта. Это отсутствие какой-либо популярности.
  • Если вы привыкли работать на чистом фреймворке, если для вас паттерны проектирования не пустой звук. Если вы привыкли писать простой, логичный и понятный код. То Октобер КМС вам предоставит такой набор костылей, что вы сможете прочувствовать весь этот адов трэш на своей шкуре.

Трудности при работе с October CMS

  1. Роуты подключаются в шаблоне страницы! И если у вас будут десятки сущностей, то вы должны будете прошерстить все эти страницы для того, чтобы понять, какой контроллер за что отвечает.
  2. В качестве шаблонов используется Twig. Но в то же время — это не чистый и красивый шаблон, а каша из PHP кода и тегов.
  3. Вы не контролируете процесс создания моделей, миграций и контроллеров именно так, как это задумали вы. Система будет думать за вас, строить свои пути и ссылки на которые и будет привязан функционал. Где-то что-то переделали немного, значит готовьтесь переделать это везде! А если хотите всё сами контролировать от и до, то прочувствуйте на себе всю силу наследования. Вам придётся переопределять всё и вся.
  4. Из-за костылей вам нужно навсегда забыть про автокомплит в IDE. А отладка кода и поиск глюков с костылями, превращается в очень интересный и долгоиграющий квест.
  5. Подключение своих ассетов происходит прямо из кода, со всеми вытекающими отсюда последствиями.
  6. MVC учит передавать данные из контроллера в шаблон, а из шаблона получать данные от пользователя назад в контроллер? Забудьте об этом. Для этого вам будет доступен свой бубен с переменными $params, $vars и другие сомнительные ништяки.
  7. Вы привыкли, что ajax — это скрипт с запросом к вашему контроллеру? Что прикрутить уже готовый скрипт к новому проекту — это дело пяти минут? Забудьте об этом. Октобер научит вас тому, что аякс — это не совсем то, о чём вы думали раньше. Более того, что это даже совсем и не JS!
  8. Вам предстоит узнать, что вызывать методы контроллера прямо в шаблоне — это очень даже правильная и новомодная практика.
  9. А ещё вы узнаете, что подключение одного шаблона внутри другого — это очень банально. Для этого вы будете подключать классы компонент, которые будут что-то выполнять и выводить в свой шаблон, который в итоге и подключится. А партиалы — это такие маленькие шаблончики, которые могут подключаться везде и повсюду, например, в качестве статического блока. Но только, как потом всю эту хрень отлаживать и поддерживать, вы в документации не найдёте.

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

Лучше писать даже маленькие проекты на чистом фреймворке, чем использовать всякие CMS велосипеды на начале проекта, а потом зайти в такой глухой угол, что все разработчики просто начнут с проекта разбегаться, а новые будут обходить такие проекты стороной.

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

Почитайте про паттерны проектирования! Начните с MVC и дальше по нарастающей: SOLID, DI, DRY и так далее. Вы кайфуете от этой подделки? Если вы пишете лендинги и сайтики с пятью сущностями, то я понимаю вашу радость. В шаблонах каша из пхп кода и аяксовых скриптов, подгрузка ассетов происходит откуда-то из кишок, а на проекте три сотни мутно названных классов, в которых, в том числе и обращение к базе и генерация скриптов на лету и т.д.
Октобер — это зло в квадрате. Потому что, якобы, использует мощь и силу фреймворка, хотя на самом деле извратило принцип и назначение Laravel, используя его как переделанное ядро, а не как надстройка над ним в виде пакетов.

В этом и проблема. Когда вы сами что-то создаете/пилите, то вы можете писать на чём угодно! Хоть нативной пыхой. А когда вы работаете в команде разработчиков, то за такие решения могут и ногами побить.

Все эти удобные решения из коробки — это зло! И это будет невозможно, так как для того, чтобы понять это, нужно попасть в команду на крупный проект.

Источник: https://cleverman.org/post/47