Pavel
Antony
А по поводу сходства с ModX - естественно оно есть, но также есть и огромные различия. ModX наверное самая близкая по духу система для меня, т.к. тоже можно почти всё делать из админки, в отличие от того же Drupal-а.
Antony
Pavel
Antony
Antony
А по поводу зачем нужна ещё она CMS если есть ModX, то об этом я могу подробно рассказать, чем Е5 отличается, какие фишки есть и т.д. Хотя из видео многое должно быть ясно.
Pavel
Antony
Ну и естественно мой уровень владения ModX, равно как и Битриксом и Друпалом и фреймворками вроде Laravel или Symfony весьма поверхностный, т.к. я пилю своё и стараюсь работать на своём.
Antony
Но при этом если сравнивать мою систему со всеми остальными, то ModX ближе всего по причине возможности вести полный цикл разработки из админки. Т.к. такого даже битрикс себе не позволяет. За это кстати ModX и не любят на всяких хабрах и мою систему за это же пинают постоянно.
Antony
Жесть :) Извини конечно, но мне от школьников менее поверхностный анализ моей системы приходит, чем я сейчас услышал.
Antony
Я могу аналогию привести, чем ModX на E5 похож. Это будет пару пунктов. Во всём остальном это совершенно разные системы.
Pavel
Anonymous
>В рамках фреймворка Е5 разработчик имеет дело исключительно с визуальным редактором, доступным в административном разделе.
То есть я так понимаю, что работа с этой cms подразумевают знание ещё какого-то языка, который разработчик придумал сам? )
Antony
Anonymous
Antony
Anonymous
Antony
Antony
Antony
Если с помощью них нужно реализовать MVC, тогда одни шаблоны отделяются от других. В этом случае один становится контроллером, который исполняет шаблон V, размещённый в данных.
Antony
Antony
В редакторе выражений собрано более 1000 команд для составления цепочек выражений. 1000 статичных команд, которые работают с определёнными типами данных, и динамические команды, которые берутся из созданной пользователем модели в модуле (таблицы данных, связи, экземпляры, переменные модуля).
Antony
Подробное описание команд здесь
http://rucms.org/helpdesk/api/ops
Antony
В редакторе они сгруппированы по типу. Т.е. вначале пользователь имеет доступ к одному из базовых команд, например "Текущий объект" (если речь идёт о контроллере, который отвечает за открытую страницу)
Antony
Или "Текущий экземпляр модуля", из которого можно перейти к таблицам данных этого модуля или к его контроллерам или к его переменным.
Antony
И т.д.
Anonymous
Движок занимает 12 Мегабайт, и это в архиве только. Я представляю сколько времени ты на всё это потратил, если там не использовал какие-то библиотеки уже готовые.
Pavel
Я это специально один раз написал, чтобы потом 100 раз всем не объяснять http://rucms.org/helpdesk/structure/data
Да ну понятно мне что архитектурно они абсолютно разные мало кого интересует архитектура при выборе инструмента, главное это философия и метод разработки, а у тебя он точно такой же как в modx, вот один а один, я тебе про архитектуру ни слова не сказал меня расстроило то, что именно то что ты называешь революцией и достоинством своей cms таковой не является, ты нам рассказывал что с помощью твоей цмс можно в графическом режиме модули писать, а я увидел просто вызов готовых модулей которые на вход получают данные на выходе возвращают массив обработанный, пошел я спать короче а то разговор глухова со слепым получается
Anonymous
Antony
Antony
Anonymous
Antony
Там как раз не вызов готовых модулей (хотя и это есть, те же комментарии для товаров например), а разработка с нуля. Т.е. вначале клепаем модель, потом её вызываем и отображаем через визуальный редактор.
Anonymous
ну на modx по-крайней мере MMO ещё никто не писал)
Antony
Ну может быть я что то недопонял, а возможно и вы не понимаете о чем я говорю, если сходство с modx видите только в разработке из админки, что кстати самый большой минус modx, а не плюс. Сейчас ещё про MMO посмотрю
Самое главное это архитектура. Например это модульность, экземплярность модулей, экземплярность таблиц, экземплярность объектов, возможность подчинения таблиц объектов, кроссмодульное подчинение таблиц, наследование модулей, состыковка контроллеров напрямую с типами объектов, связь объектов с экземплярами модулей и т.д. Понятно, что это всё звучит как несвязный бред сумасшедшего, но если почитать раздел, который я скинул, то вы возможно увидите в этом не только смысл, но и громадный потенциал для работы.
Antony
В частности в видео про магазин представлено наследование модуля Магазин из модуля Каталог. Причём наследование идёт не только на уровне контроллеров (что можно встретить и в обычных фреймворах), но и на уровне модели, шаблонов, URL-роутинга.
Antony
Если хотите могу про каждую особенность архитектуры рассказать отдельно :) Но я так понимаю, что уже не хотите
Antony
Надо видео запилить как я к этому пришёл и какое практическое применение каждой архитектурной фичи. Но у меня на очереди одна игра.
Antony
Antony
Все 1000 статических команд
Antony
Надо над этим поработать. Поидее то всё просто. Пользователь выбирает из уже созданных моделей, а потом дальше идёт в параметры этих моделей - их поля, свойства, ссылки на другие объекты и т.д.
Antony
Хотя и торопился тоже... И вообще я нервнячаю когда записываюсь и всякая фигня выходит.
Antony
Промежуток между 2 и 3им видео по магазину две недели. Столько я собирался его снимать.
Anonymous
Antony
Pavel
Самое главное это архитектура. Например это модульность, экземплярность модулей, экземплярность таблиц, экземплярность объектов, возможность подчинения таблиц объектов, кроссмодульное подчинение таблиц, наследование модулей, состыковка контроллеров напрямую с типами объектов, связь объектов с экземплярами модулей и т.д. Понятно, что это всё звучит как несвязный бред сумасшедшего, но если почитать раздел, который я скинул, то вы возможно увидите в этом не только смысл, но и громадный потенциал для работы.
Это круто, но опять же это все есть в ларе есть в октябре есть и в modx, для того же октября есть билдер который точно также позволяет делать связи между таблицами указывать типы полей и создавать представления, в modx есть cmp generator pro, который делает тоже самое только ещё и с крутым фронтердом где просто тянешь от поля в одной таблице к полю в другой таблице и выбираешь тип связи агрегатная или композитная. Но уникальность твоей cms я увидел, не сказал бы что лично я стал бы использовать ее но свои слова беру назад
Antony
CCK это только часть архитектуры и она то как раз не уникальна, в отличие от остального.
Antony
CCK это друпаловский термин что-то вроде Content Construction Kit
Antony
То же наследование я только на уровне шаблонов видел. Экземплярность модулей вообще нигде не видел, хотя может плохо смотрел. Хотя битрикс реализует по сути экземплярность, но у них это немного подругому, через подстановку разных данных в одни и те же компоненты.
Antony
Подчинение таблиц тоже нигде не видел. Особенно кросс-модульное. Тогда получается, что объект становится экземпляром того модуля, чью таблицу под него подчинили.
Pavel
Не знаю что за CCK, но ты говоришь
Модульность, в modx каждая таблица тоже свой отдельный модуль и экземпляр, ты можешь обратиться как просто к этой таблице так и через связи если к ней привязана какая то таблица при том связи бывают агрегационные (что у тебя я так понял обычные) т.е. удаляешь эту таблицу удаляется и связанная, так и композитная (что у тебя имеется ввиду под ссылкой)
Ну блин ладно, это уже высасывание из пальца весь веб приблизительно одинаково устроен)
Antony
Например, если мы в таблицу "Товары" модуля "Магазин" подчиним таблицу "Комментариев" из соответствующего модуля, то каждый товар магазина станет экземпляром модуля "Комментарии".
Pavel
Antony
Например?
Antony
Из того что я видел, это чтобы "срастить" те же "товары" и "комментарии" просто допиливают к товарам ещё одну таблицу, потом пишут отдельные контроллеры и т.д. Т.е. не идёт речи о повторном использовании методов комментариев.
Antony
Ну это от того, что самого понятия нет экземпляра модуля. Есть только экземпляр объекта.
Antony
Это можно очень просто показать тем, что после такой "слепки" к из комментариев нельзя сделать экземпляры "товаров" (рекурсия в модели).
Pavel
Например?
Любая ORM. Вообще orm как раз для этого и делаются как я понимаю
Antony
ORM тебе организует связку объектов между таблицами
Antony
Это немного не то
Antony
Точнее это очень сильно не то :)
Antony
Грубо говоря это будет просто связь 1 к многим или многое к многим, а тут речь идёт именно о экземплярности. Когда объект становится экземпляром модуля.
Antony
И я потом могу в шаблоне сделать что-то вроде [товар.комментарии.модуль_комментариев.вывести_ленту]
И он мне вывдеет ленту комментариев товара, при этом он обработает аппендикс URL который остался от обработки товара, и в качестве переменной "Шаблон ленты комментариев" возьмёт то, что у меня указано либо в модуле, который содержит товары (в его экземпляре), либо в настройках самого товара, либо в настройках родителя товара (например, можно указать разные шаблоны ленты комментариев товара для разных категорий тваров).
Antony
Я сумбурно объясняю, поидее то лучше всё по порядку или может видео сделать на тему архитектуры...
Antony
Antony
Мне осталось спать 1.5 часа :) провозился с этим видео...
Dmytro
На самом деле вопрос в том на сколько в этом всем с нуля просто разобраться и где эти знания кроме как в этой cms пригодятся
Antony
На самом деле вопрос в том на сколько в этом всем с нуля просто разобраться и где эти знания кроме как в этой cms пригодятся
Ну в рамках фреймворка, естественно. Как и в любом другом фреймворке.
А по поводу где пригодятся, я не думаю, что опыт разработчику на Zend сильно поможет переехать на Laravel, или с Bitrix-а на Symfony. Но смысл есть в этом вопросе, т.к. там хотбы и тут и там PHP, а у меня PHP нет. И если кто-то тащит за собой 10 лет синглтон с набором утилит, то для применения его в Е5 ему придётся создать небольшой интерфейс для каждого метода (чтобы он работал через конструктор). А вот если он в рамках Е5 написал набор компонентов под себя, то вытянуть куда-либо их будет намного сложнее.
Если посмотреть на этот вопрос под другим углом, то я стремлюсь к тому, чтобы разработка в Е5 была похожа на проектирование заказа на бумаге. Т.е. чтобы всё сводилось к разделению предметной области на модели и взаимодействие с ними. В этом смысле о Е5 можно думать как об инструменте для описания ER-модели. Также, как если бы пользователь воспользовался каким-нибудь графическим редактором, для визуализации ТЗ. В этом смысле этот опыт поможет пользователям разрабатывать проекты в дальнейшем и без Е5.
Pavel
такс. вопрос на засыпку. А на минишоп2 можно ли сделать несколько магазинов? Чтоб притом независимых в том плане, что хоть настройки и будут общими, но чтоб в админке заказы просматривались отдельно друг от друга в каждом магазине - это раз. Корзины у пользователей в каждом магазине были отдельные - два. Ну а пользователи - пусть будут общими...