Скажу коротко: я решил постепенно отходить от git-а. На это есть несколько причин.
Причина первая: в MODX традиционно пакеты могут хранить различные свои части в разных папках сайта. Менеджер пакетов MODX-а нормально с этим справляется. Он может упаковать различные части сайта, он может распаковать в различные части сайт. С этим вопросом и modxSDK отлично справляется: сколько будет медиасурсов в пакете, столько он и упакует, и ему совершенно не важно к каким папкам эти сурсы привязаны. А вот гит на это вообще не рассчитан. Для него все должно иметь общее начало из одной папки. Я не говорю, что гит — плохо, я просто говорю, что гит не совсем укладывается в общую картину.
Причина вторая: git в моем понимании — просто умное хранилище. Да, он контролирует версии. Да, он умеет мержить различные ветки и т.п. Но он не дает возможности что-то обкатывать, тестировать и т.п. Нельзя зайти на github и попробовать погонять какой-либо MODX-пакет, к примеру. Надо его скачать, развернуть у себя и т.д. и т.п. А потом еще поправить что-нить и отправить пуллреквест.
Мое видение на все это.
Я считаю, что гораздо правильней в принципе предоставлять доступ. К примеру, вот проект modxSDK: modxsdk.fi1osof.modxcloud.com/manager/ Логин: modxsdk Пароль: modxsdk
Каждый может зайти, и опробовать modxSDK в действии. Но лучше конечно создавая свои пакеты, а в сам modxSDK непосредственно просто так правки не вносить.
?
?
В чем суть? Конечно это все еще очень сырое и многое надо будет доделывать, включая внутренние механизмы контроля версий (кстати, в xPDO они есть), индивидуальные пакеты и т.п. Но сейчас главное — понять принципиально другой подход к разработке. Я не планирую поддерживать философию гит-а с множеством веток и т.п. В моем понимании проект должен быть один, и все должны работать с одним проектом, чтобы действия каждого укладывались в одну общую картину. А не так, что у каждого по своему клону проекта, у всех все работает, а потом смержили все, и все ломается. Более того, я рассчитываю сделать так, что можно будет даже совместно править один файл, как это в гугл-документах реализовано. Только при таком подходе все будет единое, и у всех будут актуальные файлы, и проект всегда будет актуальным.
Есть еще вот такой момент: гит все-таки рассчитан на хранение отдельных проектов, модулей и т.п. То есть один гит-проект — это один пакет. В modxSDK один проект может включать сколько угодно пакетов и т.п. Простой пример: создали новый сайт, установили Wayfinder, getResource и т.п. — уже несколько пакетов вошли в состав проекта. Конечно же это пока не оформлено, но это обязательно будет реализовано.
Резюме.
Давайте выходить на новый уровень. Тестируйте modxSDK, устанавливайте себе, играйтесь, помогайте дорабатывать на modxsdk.fi1osof.modxcloud.com/manager/ и т.п. Я думаю, modSDK станет инструментом для разработки у многих MODX-еров, так как это не просто IDE, а среда разработки с полной поддержкой окружения MODX.
Выложил новую версию с очень важным дополнением — теперь в modxSDK интегрирован модифицированный Vapor.
?
Теперь можно не только вести разработку в modxSDK, но и тут же собрать новый пакет и скачать его. Пока это довольно ограниченный механизм (пока он пакует только файлы из привязанных к пакету источников файлов), но и это уже очень и очень не мало. БОльшая часть работы — это редактирование кода, а значит очень важная задача — по завершению работы упаковать этот код. И modxSDK с этим сейчас отлично справляется. Плюс к этому он еще и как средство резервного копирования работает — перед началом работы быстренько создал пакетик и работай смело — бекапчик лежит, если что-то не так, прям в менеджере пакетов и сделал откат. Красота :-)
Плюс ко всему про разграничение политик и командную работу вообще не забывается. Дело в том, что есть отдельно права собирать пакеты и скачивать. То есть, допустим, вы кому-то дали доступ, чтобы он внес какие-то правки на сайте. Правки он внесет, на сайте все проверит, а скачать пакет не сможет :-)
UPD: Небольшой демо-ролик.
Выложил версию 1.2.4 Теперь автоподстроение по высоте есть, и главное — Ctrl+S работает :-)
Выложил новую версию 1.2.2 Пофиксил проблему с потерей путей Ace-а, когда компрессия скриптов включена. За помощь отдельное спасибо Данилу aka danik
Ого-го))) Вот это супер! Прямо сейчас поставлю на рабочий свой проект! Придется отложить изучение IDE))) Блин, супер, серьезно — очень хорошая новость))
Выложил новую версию. Добавил Ace локально. Правда проявляется некорректная работа Ace-а, когда включено сжатие скриптов. Он путает корневой путь. Надо ковырять Ace, чтобы найти как ему устанавливать явный путь до библиотеки.
Спасибо :-) А моментов здесь действительно выявляется очень много. В частности, хотя контроллеры по своей сути очень похожи на процессоры, они демонстрируют свою полную недоработку :-) Практически нет точек вхождения, проверок и т.п. Возможно в процессе возникнет видение по унификации их, чтобы привести к единому базовому классу. Кстати, контроллеры планируется добавить и в сборку в php-шаблоны, чтобы их можно было расширять для разных шаблонов.
Николай, молодца! Приятно видеть, профессионала своего дела за работой, полного энтузиазма! Ждём новых статей и видеоуроков по новым фишкам, которые удалось узнать в ходе этой кропотливой работы