Evolution CMS 2.0 на компонентах Laravel 6.0 — естественная эволюция MODX Evolution

Настало время релиза Evolution CMS 2.0 RC на компонентах Laravel 6.0, но как показал предыдущий релиз и последующие за ним обсуждения — существует масса вопросов и мифов связанных с веткой 2.0.
Самый популярный миф — в новой ветке все изменилось и по-старому уже не будет.
Неправда — будет и по-старому. Основное отличие в том, что сохранив возможности “по-старому” мы добавили возможности и “по-новому”. Уровень входа не изменился, но более продвинутые разработчики получат много готовых решений и возможностей, а те кому достаточно существующих компонентов могут работать также, как и раньше, никто не будет никого лишать привычных вещей. Уровень совместимости максимальный — даже с версии 0.9 вы можете обновиться до 1.4, а с нее до 2.0 при сохранении функционала. Хотя надо учитывать возможные проблемы которые могут возникнуть с depricated методами из за того что нужно поднять версию php до 7.2, но скорость работы того стоит, а реагировать на эти баги буду быстро, чтобы приблизить срок стабильного релиза.
Специально для сомневающихся записал видео в котором система обновлена с 1.0.8 до 1.4 (обновил бы и с более старой версии но не нашел на столько устаревший хостинг)
www.youtube.com/watch?v=E_0PluuMWT0&t=1s
А вот в этом видео уже рассказывается как с 1.4.* обновить до 2.0: www.youtube.com/watch?v=xR9filu4A8o&t=1s
В итоге — на 2.0 можно работать точно также, как и на 1.4 и ниже.
Куда все идет и какова цель всех этих изменений?
Сохранение обратной совместимостиEvolution CMS вырос из MODX Evolution, который появился в 2004 году и могу с уверенностью заявить, что даже самый старый сайт можно без особых проблем обновить до самой последней версии!
Это делается в 2 простых шага:
1. 0.9 -> 1.4.*
2. 1.4.* -> 2.0
Я не знаю ни одну систему, которая могла бы похвастаться таким результатом, с учетом 15-летней истории и все совместимо. Да у нас тоже есть моменты, которые становились deprecated, ну так и PHP за это время немало своих функций туда загнал, поэтому у вас обновление можете пройти не достаточно гладко. Но все вопросы зачастую решаются быстро и просто, достаточно уметь пользоваться гуглом и копипастом. Копируем ошибку в гугл и читаем первых пару статей из выдачи, в 95% случаев решение проблемы найдется.
Современные технологии:
Современные технологии развиваются стремительно и если мы будем стоять на месте, то уже в самое ближайшее время мы станем разработчиками неплохой, но уже устаревшей системы. Кому нужны будут такие сайты, когда на рынке будет появляться много “стильных, модных, молодежных” систем — конкурентов, да и существующие лидеры рынка на месте не стоят.Дополнительный плюс — если у кого-то вдруг появится желание изучить новые возможности, то это может даже стать открытием (не побоюсь этого слова) для тех, кто ничем кроме стандартных компонентов в жизни не пользовался. Новые знания и возможности являются основным фактором стоимости работы разработчика, мы вам их даем и уже ваше дело использовать их или нет.
Реальный пример пользы изменений — я думаю многие помнят как еще пару лет назад я не был приверженцем работы в IDE, а сейчас понимаю на сколько был не прав и что сам себе усложнял жизнь.
Framework или CMS?
CMS:
Когда было принято решение собирать Evo на компонентах Laravel одним из первых вопросов был: делал ли кто-то подобное подобное и может нет смысла придумывать велосипед? В итоге пересмотрел более 10 различных админок для Laravel, да и пару CMS на ней же и пришел к выводу, что почти все делалось не для контент-менеджеров, которые проводят очень много времени в админке, а для разработчиков. В итоге собирать и делать сайты на этом удобно а вот пользоваться не очень.
Я считаю что идеология админки Evolution CMS, которая пришла еще от MODX, очень крутая и понятная для обычного пользователя. Необходим минимум времени чтобы любому человеку обьяснить как с ней работать. Да и разработчики могут просто и быстро реализовать все пожелания клиента по организацию админ-панели.
Как реальный пример — решение Collection: modx.im/blog/addons/5994.html которое позволяет выводить дочерние документы в виде таблицы с фильтром, сортировкой и инлайн редактированием, при этом можно самостоятельно настраивать какие поля будут отображаться в таблице.
Framework:
На текущий момент Laravel один из самых популярных фреймворков, а это означает что у него есть много разработчиков, большое сообщество которое уже решило те или иные вопросы, плюс большая информационная база по работе с ним. Внедряя компоненты Laravel 6.0 в Evolution CMS мы расширяем возможности системы, а так же упрощаем жизнь разработчикам и стимулируем создание новых решений и дополнений. Тем кто долго и давно работает с Evolution и не использует других инструментов стоит присмотреться что происходит в мире и какие появились новые инструменты, упрощающие и ускоряющие разработку: Composer, Artisan, Blade, MVC, Migration, Models, Eloquent, Git и т.п.
Для тех кто только начинает знакомиться с Evolution, но уже имеет опыт работы с другими системами или с Laravel, в системе будут знакомые и любимые инструменты. Таким образом компоненты Laravel в Evolution CMS снижают порог вхождения для новичков в работе с системой и дают возможность прокачать свои скилы для тех кто давно знаком с Evolution CMS.
Итак, что нового
— Шаблоны в файлах github.com/evolution-cms/example-package#templates и Blade laravel.com/docs/6.0/blade— Controllers and MVC github.com/evolution-cms/example-package#controllers-and-mvc
— Models github.com/evolution-cms/example-package#controllers-and-mvc and Eloquent laravel.com/docs/6.0/eloquent
— Packages github.com/evolution-cms/example-package#packages (Chunks, Snippets, Plugins, Modules, e.t.c)
— Миграции и разработка на DEV и PROD окружении github.com/evolution-cms/example-package#migration
— Laravel Cache github.com/evolution-cms/example-package#laravel-cache
— Custom routing on FastRoute github.com/evolution-cms/example-package#custom-routing-on-fastroute
— use .ENV github.com/evolution-cms/example-package#use-env
— Artisan github.com/evolution-cms/example-package#artisan
— IDE-Helper github.com/evolution-cms/example-package#ide-helper
Планы на ближайшее будущее
Релиз Evolution CMS 2.0 состоится 02.11.2019, по этому поводу будет организовано офлайн мероприятие в г.Москве в частном кинотеатре 'Kinoleto' по адресу:2-й Кожуховский проезд 29, корпус 2, строение 18, вход по предворительной регистрации, форма регистрации а так же больше подробностей будут тут: evo.im/evoevent-2019.html
Скачать можно тут:
github.com/evolution-cms/evolution/releases/
Так же рекомендую прочитать:
Evolution CMS (2.0 alpha) на компонентах Laravel: modx.im/blog/news/5832.html
Комментарии: 24
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Но… Компонентов нет. Даже на Revo осталось полтора человека которые способны написать компонент, а на Эво с этим совсем проблема.
По скорости разработки сайта из-за этого он сильно отстает от Revo или других решений, а значит его практически не будут использовать.
А нет комьюнити — нет плагинов.
Замкнутый круг получается
1. Даем хорошую базу которая позволяет делать быстрые и качественные сайты + с технологиями которые современные.
2. Пишем документацию и уроки для того что б привлечь больше ребят в сообщество
3. Начинаем расширять базу компонентов.
В целом сейчас Evo по сравнению с Revo проигрывает только из за отсутствия платного маркетплейса и Минишопа. Но опять же хочется делать последовательно пускай и дольше.
ФаритТут и комьюнити есть и разработчики и пользователи.
Сразу как-то Evo стала конфеткой, привлекательнее что ли…
Надо будет обязательно попробовать погонять laravel-компоненты в связке с Evo!
Верхнее меню можно изменять как угодно через плагин
Дерево документов так же имеет события для плагинов можно менять как угодно(иконки, свое кастомное меню и поведение)
Контент тоже можно строить какой угодно :)
По сравнению с Revo сильно много свободы что дает возможность говнокодить. Но ограничений нет
Библиотеки и фреймворки приходят и уходят, а чистый JS останется.
Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) in /var/www/****/core/src/AbstractLaravel.php on line 666
Скорость — это собственно одна из причин почему я развиваю EVO. С Компонентами Laravel, 2.0 где то на 0,01с просела по сравнению с 1.4 но уж очень удобней все стало.
Может я проглядел где-то, но есть ли возможность установки через composer?
Заранее спасибо за ответ!
github.com/evolution-cms/evolution/releases/tag/3.0RC
github.com/evolution-cms/evolution/releases/tag/3.0RC2
Там еще полезных штук завезли, к примеру очень удобно Laravel Routing + Validator + Response Request для Ajax и в частности обработки любых форм.