Старт грамотной разработки под MODX
Всем привет!
Хоть с MODX знаком с незапамятных времен и сделано на нем много сайтов, до сего момента серьезной разработкой под него не заморачивался (так, велосипедил и говнокодил, если была сильная нужда). Сейчас хочется разобраться в вопросе серьезно.
Какие использовать инструменты для разработки? Как связать IDE и MODX, чтобы среда разработки понимала, что это за ересь я там пишу и что за такие объекты использую? Как отлавливать баги? Как просматривать результат своего труда?
Расскажите пожалуйста, какие конфигурации вы используете в работе.
Всем заранее спасибо!
Хоть с MODX знаком с незапамятных времен и сделано на нем много сайтов, до сего момента серьезной разработкой под него не заморачивался (так, велосипедил и говнокодил, если была сильная нужда). Сейчас хочется разобраться в вопросе серьезно.
Какие использовать инструменты для разработки? Как связать IDE и MODX, чтобы среда разработки понимала, что это за ересь я там пишу и что за такие объекты использую? Как отлавливать баги? Как просматривать результат своего труда?
Расскажите пожалуйста, какие конфигурации вы используете в работе.
Всем заранее спасибо!
Комментарии: 15
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Как-то пропустил эту информацию у Василия! Будем почитать :)
Инициализация сервера: ansible, установка MODX: Gitify, импорт настроек: Teleport. Импорт уже подготовленных чанков, tpl-ек занимает минуты, нет необходимости заниматься «клавадрочерством» с Ctrl+Tab (переключиться на фронтенд-вкладку), Ctrl/Cmd+R (обновить страницу), чтобы просмотреть результат — всё уже оттестированно на этапе вёрстки. Остаётся только настроить магию сниппетов и оформить Custom Forms. Дальше — оверлокинг с XDebug, debugParser, BloodLine и Chrome DevTools.
В общем-то, я спрашивал больше про написание компонентов, меня интересует, как сама разработка этих компонентов происходит.
Ну вот сижу я, скажем, за компом с 7 виндой. И как далее нужно все организовать, чтобы процесс разработки был комфортным? Я до этого всерьез программировал только на C# под MS SharePoint, там есть несколько неуклюжий, но вполне работоспособный процесс разработки, который очень неплохо интегрирует VisualStudio и сам SP (включая внушительные инструменты дебага, которые позволяют отслеживать реакцию чуть ли не на каждую строчку кода). Пишем код, потом одной комбинацией клавиш компилируем/копируем/устанавливаем решение на сервер SP, потом стоит только открыть нужную страницу — и там все уже есть. Гибкость этой процедуры позволяет внутри VisalStudio написать целый огромный портал, причем вместе со страницами, файлами, данными, связями и прочим. И потом всего одной строчкой в консоли всю эту красоту развернуть на девственно чистую инсталляцию SP, и все уже будет работать.
Понятно, что я не жду такого же функционала здесь, все таки MS — суровый пром, там свои задачи и своих недостатков хватает, но, собственно, меня интересует, как бы так интегрировать IDE с MODX, чтобы сама IDE понимала, что есть MODX и у него есть свои свои классы для работы с данными и самой CMS, что есть некоторые системные события и прочее.
До сего момента я писал код примерно так:
1. Пишу код прямо в окошке нового сниппета MODX;
2. Чертыхаясь, вспоминаю, что нужно писать на PHP, все написанное переписываю;
3. Обнаруживаю, что написанное не работает;
4. Начинаю отлаживать построчно, время от времени выводя прямо в текст страницы, где вызывается сниппет, содержимое нужных объектов или переменных;
5. Собственно, получается сниппет из 10 строк, на который было потрачено 3 часа.
Вот это как-то хочется оптимизировать. Чтобы редактор был с подсказками (PHPStorm? PhpED?), чтобы не приходилось из этого редактора код копировать вручную в окошко сниппета в админке modx, а потом вручную смотреть, что получилось, обновляя страницу, где вызывается сниппет.
Но и за подробное объяснение о процессе разработке также большое спасибо, всегда было интересно, как организована работа с gulp и прочими инструментами, но все руки никак не доходили поковыряться как следует и разобраться.
Что касается сниппетов — то писать их через IDE можно, но нужен еще доп. шаг, чтобы их синхронизировать. Так как элементы представлены как объекты xPDO, то они мапятся в БД, а значит нужно как-то связывать код в файле и поле в БД. В самой системе есть возможность указывать статический элемент или нет и указывать файл, где лежит содержимое. Работает нормально, но не для всех объектов. Я же использую Gitify, который умеет уже кучу всего. Но это к разработке компонента не относится.
Спасибо!
Но вы написали:
И вот тут уже не понимаю. Ведь в этом случае клиент перед минификацией в браузере все равно загрузит исходные скрипты и стили по отдельности, потратив время на запросы + лишний трафик.