2013-07-18 3 views
1

Я работаю над проектом веб-сайта с использованием WordPress, для которого требуется несколько пользовательских плагинов. Я хочу, чтобы модули были модульными, но некоторые из них требуют аналогичной функциональности. Таким образом, я считаю себя с конфликтующими целями:Организация кода с несколькими связанными проектами

  • сделать каждый плагин самодостаточного и модульное
  • Не повторять код

К примеру, у меня есть необходимость в двух различных плагин для вывода <select> элементов, основанных на списке терминов и некоторых аргументах. Я написал функцию, чтобы выполнить это, но должен ли я дублировать функцию в обоих плагинах? Это похоже на кошмар для обслуживания, но если я этого не сделаю, один плагин будет зависеть от другого довольно произвольно. Есть ли какое-то умное решение, которое мне не хватает?

+1

Планируете ли вы сделать эти плагины общедоступными или сохранить их только в своих проектах? Если последнее, я бы лично помещал их в какую-то папку lib/shared и просто загружал их в плагин. – skrilled

+0

Это будут частные плагины только для этого проекта. Папка lib - интересная идея. Это все равно будет зависимостью, но это не обязательно будет отдельный плагин. Где в организации файловой системы WordPress вы бы рекомендовали сохранить папку lib (возможно, прямо под wp-content)? –

+0

Это полностью зависит от вас, но я обычно помещаю свои библиотеки в папку вне самих проектов; i.e:/var/www/lib - затем либо измените php.ini, либо установите php_flag, чтобы добавить новый путь include, или, если проще, просто укажите/включите их. – skrilled

ответ

1

Рассмотрите дубликат кода. В частности, рассмотрим количество функций и их длину. Если оба плагина имеют только пару методов форматирования, не так уж важно дублировать этот код, чтобы поддерживать плагины в автономном режиме.

Если дубликат кода становится довольно здоровенный, начинают думать о том, выполнив одно из следующих действий:

  1. Объединение плагинов в одном плагине. Делайте это только в том случае, если два плагина вписываются в одно и то же пространство проблем. Взгляните на плагины. Есть вероятность, что то, что заставило их казаться отдельными, было иллюзорным, а фундаментальное поведение тесно связано.

  2. Извлечь дублированный код в третий плагин, который является зависимостью каждого из плагинов, совместно использующих код. Делайте это только в том случае, если дубликат кода связан и имеет смысл в качестве плагина.

Смежные вопросы