Мне интересно, как другие люди разрабатывают темы и плагины для WordPress. Для меня, редактор в браузере в панели администратора просто не обрезает его. В настоящее время я просто использую IDE с плагином PHP (NetBeans), вытаскиваю свой веб-каталог разработки с моего сервера, редактирую там, нажимаю вверх для тестирования, а затем мигрировать, чтобы жить.
Я ищу, как другие люди используют свои инструменты для управления рабочими процессами при разработке, тестировании и развертывании тем, плагинов и тестировании последних версий WordPress на их основе, прежде чем начать работу.
Я сделал это вики-сообществом, чтобы другие люди могли делиться там процессом разработки. Я не ожидаю найти единственно правильный ответ здесь - ваш процесс - ваш собственный, и я не ожидаю, что вы делаете, чтобы просто работать на себя или кого-то еще. Я просто заинтересован в улучшении моей способности разрабатывать плагины и темы, чтобы увидеть, что работает или не работает для других людей.
Другой вопрос здесь обсуждает конкретные программные инструменты для поддержки разработки WordPress . Здесь я ищу дополнительные процессы и методологии, которые можно применять независимо от инструментов, за исключением определенных задач, которые могут быть выполнены только в определенном семействе инструментов.
Для справки, я в основном делаю целые веб-сайты и плагины и разворачиваю их. Мой рабочий процесс очень тяжелый.
Чтобы начать работу над новым проектом, у меня есть сценарий Shell, который позаботится о создании нового виртуального хоста и проверяет последний тег WordPress (из нашего собственного репозитория git, который отслеживает svn).
Основной формой всего веб-сайта является git-репозиторий на wp-content. Он содержит Capfile (файл Makefile capistrano eqiuivalent) и файл конфигурации YAML, которые вместе заботятся о развертывании ( http://github.com/dxw/wp-capistrano ). Также внутри этого репозитория я добавляю тему и плагины как подмодули git (да, мы поддерживаем git-репозитории и для сторонних плагинов - нам нравится использовать последнюю версию, которую мы лично протестировали).
Для темы у меня есть инструмент/инфраструктура для генерации кода ( github.com/dxw/wp-generate ). Это означает меньше думать о том, куда должен идти код, и у него есть естественный метод разделения между представлением и моделью/контроллером.
При написании плагинов я использую cucumber/webrat для разработки через тестирование ( github.com/dxw/cucumber-wordpress ).
А для переноса баз данных разработки в рабочую среду обычно это просто копирование дампа (WP_SITEURL и WP_HOME устанавливаются capistrano на промежуточные/рабочие машины, поэтому поиск/замена не выполняются).
Я не могу себе представить, сколько часов я сэкономил с этими сценариями.
@Thomas Owens Этот вопрос несколько перекрывает и дублирует вопрос " Программное обеспечение для разработки тем/плагинов WordPress? ." Не уверен, что мы должны закрыться, но это, кажется, немного другой фокус. Так...
Вот мой основной набор инструментов для Max OS X (всегда в поисках лучшего.) Обратите внимание, я попробовал NetBeans и отказался от него. Слишком вяло и слишком мало возможностей.
Когда я был в Windows Vista, мой основной набор инструментов был:
Не уверен, что это именно то, что вы ищете, но я разрабатываю плагин для облегчения миграции между локальным сервером разработки, тестовым сервером и сервером развертывания. Я написал об этом здесь:
Надеюсь это поможет
-Майк
Это ответ рабочего процесса, не относящийся к IDE или плагину.
Решение, которое действительно хорошо работает для разработки плагинов, - это начать с локального веб-сервера Apache, в котором каждый вариант WordPress установлен в подпапке.
Храните ваши рабочие копии плагина/темы WordPress в отдельном месте вне корневого каталога локального сервера. Создайте символическую ссылку на соответствующий ствол/тег/ветку в папке/wp-content/plugins каждого варианта WordPress.
При редактировании плагина в вашей IDE внесенные вами изменения, очевидно, будут представлены в каждой установке WordPress, поэтому становится легко тестировать несколько вариантов WordPress.
По сути, вы можете открыть вкладку браузера для каждого локального варианта WordPress и протестировать каждый из них, работая над одним проектом и одной файловой базой.
Используя IDE, который поддерживает SVN и FTP, все, что вам нужно сделать, это отредактировать вашу рабочую копию и зафиксировать ваши изменения обратно в хранилище.
Как IDE Coda делает это для меня, но мне также нравятся NetBeans и Eclipse.
Если вы довольны тем, что ваш плагин работает, и вы зафиксировали эти изменения в своем репозитории, вы можете открыть свой проект WordPress и опубликовать измененный плагин непосредственно на своем сайте.
У меня относительно несложная установка, которая развивалась с начала моей нынешней работы ~ 2,5 года назад.
Я делаю всю свою разработку по SSH, используя Vim inside GNU screen . Плагины Vim включают в себя:
Вертикальные расщепления и :set hidden
необходимы. Я также предпочитаю терминал с 256 цветами ( iTerm в Mac OS X) с railscasts цветовой схемой.
Мы также медленно модифицировали dBug , чтобы удовлетворить наши потребности. Хорошая замена для print_r()
и var_dump()
, когда вы знаете, что переменная является массивом или объектом.
В настоящее время я не работаю над многими общедоступными плагинами/темами, поэтому не проверяю совместимость плагинов с несколькими версиями WordPress. Я пишу код на сервере разработчиков и перемещаю этот код в производство через Subversion.
Процесс разработки WordPress Theme
Конвертировать каркас Mock Flow в базовый XHTML и CSS
Подключите XHTML к файлу шаблона master.php и конвертируйте в теги Template и функции WP
Разделите master.php на различные файлы шаблона, а именно: header.php, index.php, sidebar.php и footer.php
Напишите любые пользовательские запросы и функции, которые могут понадобиться
Подключите макет CSS и добавьте div {outline:1px solid red;}
, чтобы помочь настроить макет4.
Загрузите папку Theme в WordPress для тестирования и дальнейшей разработки.
Инструменты разработки WordPress
Aptana Studio Редактор кода WorkPlace со встроенным FTP
PuTTY
два монитора 1920 x 1200 с открытым браузером на одном и редактором кода на другом
Wacom Intuis 4 планшет
Firebug с Yslow и скоростью Google Page
Мой рабочий процесс довольно прост. Я не отставал от 4 сред. Тестирование, разработка, постановка и производство.
Я использую git для контроля версий; Я игнорирую файл wp-config.php, поэтому этот файл не перезаписывается, когда я нажимаю и перемещаюсь по разным местам. Я использую Unuddle как общедоступный/центральный репозиторий для других, из которого можно вытолкнуть и вытащить.
Кажется, это работает довольно хорошо. Я буду совершать так часто, как я себя помню, пока я работаю над тестированием. По крайней мере, один раз в день, если не больше, я синхронизируюсь с unuddle и заставляю сервер разработки вносить изменения. Я стараюсь не выполнять какую-либо прямую работу на сервере, поэтому я в основном просто вношу изменения. Если в базу данных были внесены значительные изменения (новые плагины, обновленный контент и т.д.), Я исключу это из своего тестирования; сделать резервную копию разработки и импортировать дамп.
Я использую тот же процесс для постановки. Постановка находится на том же сервере, что и производственный процесс, дважды проверьте правильность и убедитесь, что все настройки и модули работают на рабочем сервере. Когда я буду готов, я создаю резервные копии всех рабочих файлов и базы данных и копирую файлы и базу данных из рабочей сцены.
Поскольку wp-config.php отсутствует в git, он позволяет довольно просто перемещать и извлекать информацию. При переходе к производству из рабочей среды я копирую файлы и не использую git, поэтому я должен убедиться, что wp-config.php указан правильно.
Я задал симлиар вопрос , и я собираюсь изучить использование этого плагина.
Я также думал об использовании Capistrano; и создание очень подробного сценария миграции, который будет проходить и обрабатывать все файлы и резервные копии/миграции базы данных, а также обновлять пути к файлам и URL-адреса.
Одна вещь, которая помогает мне (особенно при работе над несколькими темами клиента), - это использование WordPress Multisite на моем сервере разработки. Таким образом, я могу иметь столько открытых вакансий, сколько нужно, и не беспокоиться о клиенте А, видящем тему клиента Б. Соедините это с полным пакетом примеров контента, который я загружаю каждый раз, когда создаю новый сайт, и у вас есть отличная система разработки.
Я делаю от взлома на месте на сервере в духе жизненной системы до более структурированного dev/test/stage/жизненного цикла с использованием систем контроля версий и автоматизированных тестов. Это зависит только от работы.
Кроме того, я сообщаю об ошибках обратно в проект WordPress, когда запускаю их.
Для разработки плагинов я стараюсь не заново изобретать колесо, а создавать новые на основе существующих принципов и шаблонов.
Вот мой рабочий процесс:
Static
и theme/plugin
в папках Dynamic
, использующих Git.создать виртуальный хост для проекта. Я следую этой конвенции:
http://project1.static.dev (опционально)
Я обычно следую за этой организацией папок:
Projects
Project1Name
Docs //Requirements docs, emails, other related documents.
//This directory may contain directories with names as dates
//(e.g 2014-01-01) to stay super organized :)
Designs //All PSDs go here
Data //Database backup for the project,
Site
Dynamic //WordPress generally
Static //I don't always create a static version. I did a couple
//of times in the past. I use the same structure inside
//the theme or plugin I'm developing
js
css
img
Project2Name and so on ...
Я знаю, что я еще не использую инструмент build
изо дня в день, что заставляет меня чувствовать себя плохо.
Но я использую инструмент сборки ANT для моего проекта Sprite2CSS в сочетании с парой PHP скриптов для использования ANT.
Будь я на Windows или Ubuntu, я использую следующее:
Я открыт для предложений по улучшению моего рабочего процесса.
Я работаю в Windows с Denver , FileZilla, Notepad ++, Firefox Firebug и другими инспекторами (ссылки были выше), cPanel и dbForge Studio for MySQL