Транспортный пакет для Composer дополнений
Василий Наумкин анонсировал новый вид дополнений для MODX3 способных решить проблему зависимостей.
Идея очень перспективная, заслуживает внимания и осмысливания. Мне прямо скажу очень понравилась — Василий респект!!!
Для полного внедрения в массы не хватает немного дружеского интерфейса — то за что народ и полюбил MODX. Вероятно необходима страничка для управления composer пакетами в админке.
Из которой можно выполнить поиск пакета аналогично поиску пакета в репозитории, установку, удаление, обновление и тд. и тп. Естественно сейчас об этом рано говорить… Но хочу привести пример транспортного пакета для Composer дополнений.
Фактически это просто обертка для установки из Composer mmxDatabase и mmxForms. Пакет при установке скачивает composer и актуальную версию composer.json. Далее в резолвере происходит либо установка пакета, либо удаление
Конечно при установке через транспортник не получился разрулить какие либо конфликты, если таковые возникнут при установке, но это все же привычней для многих пользователей.
За сим прощаюсь, хорошего всем вечера! Пример транспортного пакета на гитхаб
PS. Василий сильно не ругайся!
28.03.2024
Обновил сборщик, убрал класс обертки композера из папки компонента. Теперь при установке пакета никаких лишних папок не создается.
31.03.2024
Добавлен выбор версии пакета при установке. При переустановке пакета можно как понизить версию, так и повысить, вообщем выбрать любую из доступных.
Идея очень перспективная, заслуживает внимания и осмысливания. Мне прямо скажу очень понравилась — Василий респект!!!
Для полного внедрения в массы не хватает немного дружеского интерфейса — то за что народ и полюбил MODX. Вероятно необходима страничка для управления composer пакетами в админке.
Из которой можно выполнить поиск пакета аналогично поиску пакета в репозитории, установку, удаление, обновление и тд. и тп. Естественно сейчас об этом рано говорить… Но хочу привести пример транспортного пакета для Composer дополнений.
Фактически это просто обертка для установки из Composer mmxDatabase и mmxForms. Пакет при установке скачивает composer и актуальную версию composer.json. Далее в резолвере происходит либо установка пакета, либо удаление
За сим прощаюсь, хорошего всем вечера! Пример транспортного пакета на гитхаб
PS. Василий сильно не ругайся!
28.03.2024
Обновил сборщик, убрал класс обертки композера из папки компонента. Теперь при установке пакета никаких лишних папок не создается.
31.03.2024
Добавлен выбор версии пакета при установке. При переустановке пакета можно как понизить версию, так и повысить, вообщем выбрать любую из доступных.
Поблагодарить автора
Отправить деньги
Комментарии: 30
удалил, спасибо! Юмани
Эх пошла заруба. Мы с напарником @Наумов Алексей уж задумались, а не сделать ли и MiniShop3 с установкой через Composer, так как там уже появились именно композерные зависимости
именно в случае composer зависимостей как раз и нужен новый тип дополнения. Никто не гарантирует что другой пакет не притащит свои зависимости с другими версиями и сайт перестанет корректно работать.
Ну я понял ))
PS. Василий сильно не ругайся!Не буду, но у меня два вопроса.
1. У каждого транспортника своя версия, по которой админка отслеживает обновления, и если ты опубликуешь этот транспортник в репозитории MODX или modstore, то получается, тебе же надо будет следить за моими релизами на Github, и каждый раз менять версию этого транспортника?
Потому что иначе пользователи транспортника и не узнают, что есть обновление — они же не умеют делать composer update из консоли. Ну и откат на предыдущую версию вряд ли будет работать.
2. Судя по коду, этот пакет разворачивается в core/components/mmxforms и будет лежать рядом с оригинальным core/components/mmx-forms. То есть, рядом будет 2 похожие директории: одна для транспортника, вторая для оригинального дополнения.
В общем, всё это как-то костыльно, но пусть пользователи нас рассудят. Кто хочет — будет учиться работать с composer, кто не хочет — будет скачивать виртуальные транспортники.
1 — тут как бы есть несколько вариантов.
— Если необходимо связать версию транспортного пакета (ТП) с версией packagist то это можно прописать в том же ТП.
— Если в этом нет необходимости то добавить в ТП update пакета с packagist
2 — ну пока черновой вариант такой, мне это тоже не нравится. Там лежит только обертка для композера. Ее можно переместить в другое место и соответственно этот пункт пропадает.
Но согласись не хватает интерфейса для управления в админке? Это пока самый простой способ видеть что установлено и привычно для пользователя.
— Если необходимо связать версию транспортного пакета (ТП) с версией packagist то это можно прописать в том же ТП.
— Если в этом нет необходимости то добавить в ТП update пакета с packagist
Ну и откат на предыдущую версию вряд ли будет работать.если версии ТП и packagist связанны, то можно и реализовать откат.
2 — ну пока черновой вариант такой, мне это тоже не нравится. Там лежит только обертка для композера. Ее можно переместить в другое место и соответственно этот пункт пропадает.
В общем, всё это как-то костыльноЭто да не фен шуй — потому и просил не ругать)
Но согласись не хватает интерфейса для управления в админке? Это пока самый простой способ видеть что установлено и привычно для пользователя.
1. Ты не ответил — как юзер узнает о релизе новой версии, если ты не загрузишь новый транспортник в репозиторий MODX?
У него же в управлении пакетами не загорится обнова, сам он «переустановить» не догадается нажать, composer пользоваться не умеет. Как обновляться-то?
У Composer уже есть отличный CLI. Лучше уж сделать пакет с окошком терминала для работы с этим CLI из админки, если так страшно заходить в консоль сервера.
У него же в управлении пакетами не загорится обнова, сам он «переустановить» не догадается нажать, composer пользоваться не умеет. Как обновляться-то?
Но согласись не хватает интерфейса для управления в админке?Не соглашусь, это примерно то же, что уже произошло с MODX 3 — обновили на полшишечки, чтобы юзеров не распугать, теперь разгребаем.
У Composer уже есть отличный CLI. Лучше уж сделать пакет с окошком терминала для работы с этим CLI из админки, если так страшно заходить в консоль сервера.
1. Ты не ответил — как юзер узнает о релизе новой версии, если ты не загрузишь новый транспортник в репозиторий MODX?из наиболее логичного это инфу должен давать репозиторий на запрос CheckUpdates
Не соглашусь,
У Composer уже есть отличный CLI. Лучше уж сделать пакет с окошком терминала для работы с этим CLI из админки, если так страшно заходить в консоль сервера.ну так сейчас ты не про интерфейс управления?
И вопрос — а как юзер узнает об обновлении если поставил пакет напрямую через композер?
Если уж на то пошло то можно генерировать транспортный автоматом, при появлении новой версии в packagist, там от транспортника то ничего не осталось. Если все лишнее выкинуть то останется в районе 6 файлов.
И автоматом загружать в репозитории.
И всё для того, чтобы пользователи не начинали развиваться.
Я эти дополнения сделал с противоположной целью, если что — заставить юзеров MODX пользоваться композером.
И всё для того, чтобы пользователи не начинали развиваться.
Я эти дополнения сделал с противоположной целью, если что — заставить юзеров MODX пользоваться композером.
Я эти дополнения сделал с противоположной целью, если что — заставить юзеров MODX пользоваться композером.Пользователи MODX — они же все разные, нельзя всех под одну гребенку. Одно дело если речь про разработчиков то да, тут я с тобой солидарен, composer удобно и тд и тп.
Но большая часть это обычные люди, вообще не разрабы и они тоже хотят что-то сделать на MODX, им нужен понятный интерфейс с кнопочками и окошечками.
И всё для того, чтобы пользователи не начинали развиваться.Василий, прекращай пожалуйста путать развитие разработчика (программиста, ИТ-гика, кодера, PHP-шника и т.п.) с развитием например маркетолога, который собирает сайты на MODX CMS (вместо Wordpress и Битрикс и etc) чтобы иногда пригласить разработчика на сложные задачи.
Дружелюбность системы, баланс её простоты и функционала, скорость развёртывания позволят её развиваться и привлекать новых пользователей.
Развитие!=Усложнение. Часто бывает наоборот, у гиков реже. Но для гиков уже есть фреймворки с их усложнениями на любую глубину погружения, а MODX крут тем, что сохранял баланс простоты.
Или сделать проще слишком сложно ?)) (Вот он и вызов!)
из наиболее логичного это инфу должен давать репозиторий на запрос CheckUpdatesЭто как? Какой репозиторий будет проверять версию пакета в packagist.org и показывать в админке кнопку «обновить»? И что будет происходить при нажатии на эту кнопку?
Еще раз говорю, что если ты хочешь завязать работу на транспортные пакеты, тебе придётся обновлять их версию в репозиториях MODX.
ну так сейчас ты не про интерфейс управления?Нет, я про консоль в админке, где надо будет пальчиками вбивать команды composer и читать ответы. Что-то типа такого интегрировать.
И вопрос — а как юзер узнает об обновлении если поставил пакет напрямую через композер?Я предлагаю подписываться на релизы в репозитории:
Там можно следить за любыми разработками, не только для MODX — очень удобно.
Это как? Какой репозиторий будет проверять версию пакета в packagist.org и показывать в админке кнопку «обновить»?ну явно что не rest.modx.com.
И что будет происходить при нажатии на эту кнопку?обновление пакета с composer
Нет, я про консоль в админке, где надо будет пальчиками вбивать команды composer и читать ответы. Что-то типа такого интегрировать.не, не зайдет. Тот кто не пользуется консолью и такой пользоваться не будет. Нужен нормальный всем понятный интерфейс.
Я предлагаю подписываться на релизы в репозитории:в случае с закрытым репозиторием как подписывать и узнавать об обновлении?
ну явно что не rest.modx.com.То есть ты еще и какой-то репозиторий доработаешь, и в админку MODX новые функции для работы с пакетами протолкнёшь?
Прям не терпится почитать, что тебе в MODX LLC ответят на pull-request.
в случае с закрытым репозиторием как подписывать и узнавать об обновлении?А как из него код качать? Если есть доступ — будут и уведомления. Тем более, если за доступ еще и платить надо будет.
То есть ты еще и какой-то репозиторий доработаешь, и в админку MODX новые функции для работы с пакетами протолкнёшь?нет, конечно. Мы же рассуждаем в данный момент чисто теоретически.
Прям не терпится почитать, что тебе в MODX LLC ответят на pull-request.Да на… пошлют. Я прекрасно это осознаю.
Ты возможно не понял, мне всецело нравится идея с композером, я просто хочу найти альтернативу работы с твоей идеей дополнения в тяжелых реалиях настоящего.
Получается на данный момент будет 2 вида дополнений:
— транспортный пакет (ТП)
— композер пакет (КП)
Обычная ситуация, сделали сайт, туда поставят кучу дополнений ТП и конечно что-то из КП. Придется отслеживать ТП в разделе пакетов MODX и КП в консоли.
Как по мне это уже неудобно, нет единого центра управления. Ты же понимаешь что даже если ты сейчас прикрутишь терминал в админку MODX LLC тебе ответят аналогично.
И по факту будет сайт с двумя видами дополнений. Поэтому я и предлагаю вариант с ТП.
Да это как ты считаешь костыль, это не модно, это устарело, это надо же транспортный собирать. Но другого в ближайшее время в MODX не будет.
И по факту будет сайт с двумя видами дополнений.Именно так, да — переходный период.
Со временем новых mmx* дополнений должно быть больше, а старые делать и обновлять просто перестанут. Понятно, что это годы, но тем не менее.
Заодно это неплохой предлог перевести текущие актуальные компоненты на новые рельсы, выкинув всякое старьё. Мы же чисто теоретически.
Но другого в ближайшее время в MODX не будет.С таким подходом — тем более.
В любом случае, спорить я не буду и работа с транспортными пакетами останется головной болью того, кто ими будет заниматься.
Да мы вроде и не спорили, так поболтали немного.
Вот к примеру, подписался на новые релиз в твоем репозитории, пришло оповещение, я зашел на сайт и просто переустановил пакет.
ps. там сортировка не работает, выдает ошибку joxi.ru/zANQW4qiv4KyQ2
/home/s33859/www/composer.json has been updated
Running composer update mmx/database mmx/forms
Loading composer repositories with package information
Updating dependencies
Lock file operations: 0 installs, 2 updates, 0 removals
- Upgrading mmx/database (1.0.0 => 1.0.1)
- Upgrading mmx/forms (dev-main 9a6f320 => 1.0.1)
Writing lock file
Installing dependencies from lock file (including require-dev)
Package operations: 0 installs, 2 updates, 0 removals
As there is no 'unzip' nor '7z' command installed zip files are being unpacked using the PHP zip extension.
This may cause invalid reports of corrupted archives. Besides, any UNIX permissions (e.g. executable) defined in the archives will be lost.
Installing 'unzip' or '7z' (21.01+) may remediate them.
- Downloading mmx/database (1.0.1)
- Downloading mmx/forms (1.0.1)
0/2 [>---------------------------] 0%
1/2 [==============>-------------] 50%
2/2 [============================] 100%
- Upgrading mmx/database (1.0.0 => 1.0.1): Extracting archive
- Upgrading mmx/forms (dev-main 9a6f320 => 1.0.1): Extracting archive
0/2 [>---------------------------] 0%
2/2 [============================] 100%
Generating autoload files
61 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
No security vulnerability advisories found.
Using version ^1.0 for mmx/database
Using version ^1.0 for mmx/forms
Cleared MODX cache
Added event "OnSiteRefresh" to plugin "mmxForms"
Run Phinx migrations
Phinx by CakePHP - https://phinx.org.
using config file core/vendor/mmx/forms/core/phinx.php
using config parser php
using migration paths
- /home/s33859/www/core/vendor/mmx/forms/core/db
using environment local
using database s33859
ordering by creation time
== 20240325145843 FormSnippet: migrating
== 20240325145843 FormSnippet: migrated 0.2726s
== 20240326132457 Files: migrating
== 20240326132457 Files: migrated 0.6260s
All Done. Took 0.9163s
Cleared MODX cache
Готово, у меня новая версия дополнения. Теперь и на русском языке, отлично.ps. там сортировка не работает, выдает ошибку joxi.ru/zANQW4qiv4KyQ2
Есть ли какие-то ограничения со стороны хостинга для запуска composer из php?
Я к тому, что пакет это делает… но не будет ли на некоторых хостингах это запрещено?
Я к тому, что пакет это делает… но не будет ли на некоторых хостингах это запрещено?
Да, не должно… но возможны нюансы. Из того что мне кажется может вызвать проблему это запуск бинарника с помощью php. Вот тут github.com/vgrish/mmx-forms-installer/blob/master/core/components/mmxforms/PackageComposerWrapper.php#L24
И тут github.com/vgrish/mmx-forms-installer/blob/master/core/components/mmxforms/PackageComposerWrapper.php#L114
Напрямую из phar это не получилось у меня по другому запустить.
Ну и конечно кроме как модхост я нигде это не тестировал.
И тут github.com/vgrish/mmx-forms-installer/blob/master/core/components/mmxforms/PackageComposerWrapper.php#L114
Напрямую из phar это не получилось у меня по другому запустить.
Ну и конечно кроме как модхост я нигде это не тестировал.
например, не так давно я работал с каким-то сайтом на хостинге, и хоть сайт был под php 7.4, но если я просто в консоли (из под ssh, или через веб-интерфейс хостинга) вызывал этот самый php, то запускался php 5.3.
Ну мы же запускаем установку не из под консоли. Будет та же версия php что и на сайте.
На гитхаб есть собранный пакет. Ты можешь попробовать его установить и рассказать какая конфигурация на хостинге и что получилось. Так я соберу немного статистики. Мне интересно будут ли какие проблемы.
Спасибо!
Спасибо!
Я к тому, что пакет это делает… но не будет ли на некоторых хостингах это запрещено?Все в классе враппера, там код на 100 строк, можно посмотреть.
Можно я своё мнение напишу?
Я ни одного сайта не сделал без дополнений Василия, по сути я только с его версией Модикса и работаю всегда.
Да и другие дополнения все отсюда, с Модстора.
Вася глыба отечественного сообщества, и то, что он вернулся, значит что он все ещё беспокоится за развитие любимого продукта. Очевидно, со стороны создателей поддержки ждать не стоит, у них свое мнение и они бабки зарабатывают, они будут делать как удобно для их бизнеса.
Если посмотреть за последние годы, сколько здесь было заметок о дополнениях, которые сделали не наши ребята? Я на сайтах только clientconfig и formit с modx.com использую. Вот FormIt замену уже предложили.
В общем я думаю Васе нужно делать свой форк и развивать по своему усмотрению. Думаю многие подержат это решение.
Даёшь ModX Absolution!
З.Ы. Я все дополнения только использую, новых сам не пишу. Так что если написал бред, то простите=)
Я ни одного сайта не сделал без дополнений Василия, по сути я только с его версией Модикса и работаю всегда.
Да и другие дополнения все отсюда, с Модстора.
Вася глыба отечественного сообщества, и то, что он вернулся, значит что он все ещё беспокоится за развитие любимого продукта. Очевидно, со стороны создателей поддержки ждать не стоит, у них свое мнение и они бабки зарабатывают, они будут делать как удобно для их бизнеса.
Если посмотреть за последние годы, сколько здесь было заметок о дополнениях, которые сделали не наши ребята? Я на сайтах только clientconfig и formit с modx.com использую. Вот FormIt замену уже предложили.
В общем я думаю Васе нужно делать свой форк и развивать по своему усмотрению. Думаю многие подержат это решение.
Даёшь ModX Absolution!
З.Ы. Я все дополнения только использую, новых сам не пишу. Так что если написал бред, то простите=)
Если посмотреть за последние годы, сколько здесь было заметок о дополнениях, которые сделали не наши ребята?Это сайт русскоязычноого сообщества, тут просто нет забугорных пользователей)) А так-то у них, наверное, тоже есть те, кто пишут допы.
modhost
modx 3
php8.1
Попробовал установить последнюю версию зависло
Консоль запущена…
Пробуем установить пакет с подписью: mmxforms-1.0.2-pl
Пакет найден… сейчас идёт подготовка к его установке.
Загрузка рабочего пространства пакета…
Рабочее пространство загружено, сейчас устанавливаем пакет…
Так и висит уже полчаса.
modx 3
php8.1
Попробовал установить последнюю версию зависло
Консоль запущена…
Пробуем установить пакет с подписью: mmxforms-1.0.2-pl
Пакет найден… сейчас идёт подготовка к его установке.
Загрузка рабочего пространства пакета…
Рабочее пространство загружено, сейчас устанавливаем пакет…
Так и висит уже полчаса.
На тестовом тарифе памяти не хватает.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.