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
Dmytro Lukianenko
20 сентября 2019, 11:39
modx.pro
3
740
+28

Комментарии: 22

Александр Мельник
20 сентября 2019, 14:50
+1
звучит вкусно
    Павел Бигель
    20 сентября 2019, 15:30
    +1
    Вкусно и классно.
    Но… Компонентов нет. Даже на Revo осталось полтора человека которые способны написать компонент, а на Эво с этим совсем проблема.
    По скорости разработки сайта из-за этого он сильно отстает от Revo или других решений, а значит его практически не будут использовать.
    А нет комьюнити — нет плагинов.
    Замкнутый круг получается
      Dmytro Lukianenko
      20 сентября 2019, 15:40
      +6
      Ну вот что б разорвать этот круг нужно что то делать и предпринимать шаги в этом направлении.

      1. Даем хорошую базу которая позволяет делать быстрые и качественные сайты + с технологиями которые современные.
      2. Пишем документацию и уроки для того что б привлечь больше ребят в сообщество
      3. Начинаем расширять базу компонентов.

      В целом сейчас Evo по сравнению с Revo проигрывает только из за отсутствия платного маркетплейса и Минишопа. Но опять же хочется делать последовательно пускай и дольше.
        Фарит
        20 сентября 2019, 17:01
        0
        В целом сейчас Evo по сравнению с Revo проигрывает только из за отсутствия платного маркетплейса и Минишопа.
        Попробуйте адаинистрации Модстора предложить.
        Тут и комьюнити есть и разработчики и пользователи.
          Dmytro Lukianenko
          20 сентября 2019, 17:15
          +3
          Кстати интересная идея надо будет с Василием поговорить ибо по уму там не сильно много доработок с его стороны нужно будет.
        Dmytro Lukianenko
        20 сентября 2019, 15:45
        +1
        Кстати добавлю что сделали базу для компонентов (package), очень хороший базис заложили.
        Василий Столейков
        20 сентября 2019, 15:54
        +1
        Классно, @Dmytro Lukianenko молодец, уважаю!
        Сразу как-то Evo стала конфеткой, привлекательнее что ли…
        Надо будет обязательно попробовать погонять laravel-компоненты в связке с Evo!
          Кудашев Сергей
          21 сентября 2019, 09:40
          +1
          Смотрю на то как развиваются события. Если так дальше будет продолжаться, то Revo все таки помрет. Если Evo переживет старшего брата и вернет популярность MODX это будет приятный сюрприз. @Dmytro Lukianenko правильное дело делаете :) Удачи!
            Сергей Шлоков
            24 сентября 2019, 20:01
            +1
            Ну если ничего не делать, то так и случится. Упорство Дмитрия должно послужить положительным примером.
            Дмитрий
            23 сентября 2019, 11:36
            0
            Круто. А что насчёт админки? На чём она написана, насколько расширяема по сравнанию с revo'вской?
              Dmytro Lukianenko
              23 сентября 2019, 11:40
              +4
              Расширяема как угодно. Написана на чистом JS, ну и добавлен Jquery для поддержки части плагинов для обратной совместимости.

              Верхнее меню можно изменять как угодно через плагин
              Дерево документов так же имеет события для плагинов можно менять как угодно(иконки, свое кастомное меню и поведение)
              Контент тоже можно строить какой угодно :)

              По сравнению с Revo сильно много свободы что дает возможность говнокодить. Но ограничений нет
                Олег Сергеевич
                10 октября 2019, 12:54
                0
                Чисты JS — это правильный выбор!
                Библиотеки и фреймворки приходят и уходят, а чистый JS останется.
              Ivan
              23 сентября 2019, 22:33
              0
              Попробовал установить сие творение, на последнем шаге выбило ошибку.
              Parse error: syntax error, unexpected '?', expecting variable (T_VARIABLE) in /var/www/****/core/src/AbstractLaravel.php on line 666
                Dmytro Lukianenko
                23 сентября 2019, 22:35
                +1
                Версию PHP поставьте 7.2 или 7.3 и все ок будет
                Ivan
                23 сентября 2019, 22:49
                0
                Спасибо. теперь установилось
                  Ivan
                  23 сентября 2019, 22:52
                  0
                  Мне вот интересно при большом количестве ресурсов (более 300 000), что будет быстрей работать revo или новая evo?
                    Dmytro Lukianenko
                    23 сентября 2019, 22:56
                    +2
                    Пока только пару проектов Василия видил которые работают на Рево шустро, остальное на больших количествах и стандартных компонентах тормозит сильно.

                    Скорость — это собственно одна из причин почему я развиваю EVO. С Компонентами Laravel, 2.0 где то на 0,01с просела по сравнению с 1.4 но уж очень удобней все стало.
                      Павел Голубев
                      24 сентября 2019, 10:19
                      0
                      Выйдет php7.4 с предварительной загрузкой в память и скорость подтянется.
                        Сергей Шлоков
                        24 сентября 2019, 19:57
                        -1
                        Я бы на это сильно не рассчитывал. Узкое место MODX совсем не в загрузке классов.
                    Дмитрий
                    09 октября 2019, 16:16
                    0
                    Доброго всем!
                    Может я проглядел где-то, но есть ли возможность установки через composer?
                    Заранее спасибо за ответ!
                      Dmytro Lukianenko
                      09 октября 2019, 16:28
                      +1
                      www.youtube.com/watch?v=xQ_aqYpS0Cc&t=11s

                      //Сначала собственно проект создаем
                      composer create-project evolutioncms/evolution:2.0.x-dev .
                      
                      //А так еще и устанавливаем сразу что б не через браузер и в 1 строку: (но можно и без параметров тогда будет спрашивать)
                      php install/cli-install.php --database_server=localhost --database=DB --database_user=USER --database_password=PASS --table_prefix=evo_ --cmsadmin=admin --cmsadminemail=email@gmail.com --cmspassword=123456 --language=en --mode=new --installData=n --removeInstall=y
                    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
                    22