您使用什么流程进行WordPress开发?[关闭]


38

我对其他人如何为WordPress开发主题和插件感兴趣。对我来说,管理面板中的浏览器内编辑器不会删除它。目前,我只是使用带有PHP插件(NetBeans)的IDE,从服务器中拉出开发Web目录,在其中进行编辑,推送进行测试,然后再迁移到现场。

我正在寻找其他人如何使用他们选择的工具来管理工作流,以开发,测试和部署主题,插件,并在上线之前针对这些主题测试WordPress的最新版本。

我已将其设为社区Wiki,以便其他人可以共享那里的开发过程。我不希望在这里找到一个正确的答案-您的流程是您自己的,而且我不希望您为自己或其他任何人工作。我只是想通过查看对他人有效或无效的方式来提高开发插件和主题的能力。

这里的另一个问题讨论了支持WordPress开发的特定软件工具。在这里,我正在寻找可以独立于工具应用的更多流程和方法,除了某些任务可能仅在某些工具系列中才能完成。


你可能会的。:类似的问题已经由上wordpress.stackexchange.com/questions/324/...
塔尔加利利

Answers:


20

作为记录,我主要制作整个网站和插件,并进行部署。我的工作流程非常繁琐。

首先开始一个新项目,我有一个shell脚本,它负责建立一个新的vhost并检查WordPress的最新标签(从我们自己的git仓库,该仓库跟踪svn)的整个过程。

整个网站的基本形状是wp-content上的git repsotory。其中包含一个Capfile(capistrano的Makefile等价)和一个YAML配置文件,它们共同负责部署(http://github.com/dxw/wp-capistrano)。同样在该存储库中,我将主题和插件添加为git子模块(是的,我们也维护了第三方插件的git存储库-我们喜欢使用我们亲自测试过的最新版本)。

对于主题,我有一个代码生成工具/框架(github.com/dxw/wp-generate)。这意味着无需再去考虑代码应该去哪里,并且它具有在View和Model / Controller之间分离的自然方法。

在编写插件时,我使用Cucumber / Webrat进行测试驱动的开发(github.com/dxw/cucumber-wordpress)。

对于将开发数据库迁移到生产环境,通常只是复制转储的一种情况(WP_SITEURL和WP_HOME是由capistrano在暂存/生产计算机上设置的,因此无法进行搜索/替换)。

我无法想象我用这些脚本节省了多少个小时。


特别感谢您的链接。但是,难道您不会丢失生产数据库的内容吗?除了选择手动加载哪些表外,我还没有找到一种工作方法,即使那样,我也必须重做菜单项。
Daniel C. Sobral

6

@Thomas Owens这个问题有些重叠,并且重复了“ WordPress主题/插件开发软件? ” 这个问题。不知道我们是否应该关闭,但是似乎重点有所不同。所以...

Mac OS X

这是我现在用于Max OS X的基本工具集(总是在寻找更好的工具。)注意,我尝试使用NetBeans并放弃了它。太慢,功能太少。

Windows Vista

当我使用Windows Vista时,我的基本工具集是:

代码部署/数据迁移到交换域

不知道这是否正是您要寻找的东西,但我开发了一个插件来简化本地开发服务器,测试服务器和部署服务器之间的迁移。我在这里写过:

希望这可以帮助

-麦克风


5

这是工作流程的答案,不特定于IDE或插件。

一个非常适合插件开发的解决方案是从本地apache网络服务器开始,每个wordpress版本都安装在子文件夹中。

在本地服务器根目录之外的单独位置中,存储您的wordpress插件/主题工作副本。在每个wordpress版本的/ wp-content / plugins文件夹中,创建一个指向相应主干/标签/分支的符号链接。

在IDE中编辑插件时,您所做的更改显然会在每次wordpress安装中表示出来,因此可以轻松测试多种wordpress版本。

本质上,您可以为每个本地wordpress变体打开一个浏览器选项卡,并在处理单个项目和单个文件库时测试每个。

使用支持SVN和FTP的IDE,您要做的就是编辑工作副本并将更改提交回存储库。

作为一个IDE,Coda可以为我做到,但是我也喜欢NetBeans和Eclipse。

当您对插件的功能感到满意并且将这些更改提交到存储库后,便可以打开wordpress项目并将更改后的插件直接发布到您的实时站点。


3

自从大约2.5年前开始今天的工作以来,我已经有了一个相对简单的设置。

发展

我使用GNU screen内的Vim通过SSH进行所有开发。Vim插件包括:

垂直分割:set hidden是必不可少的。我也更喜欢带有railscasts配色方案的256色终端(在Mac OS X上为iTerm)。

我们也一直在缓慢地修改dBug以适应我们的需求。尼斯替代print_r()var_dump()当你知道的变量是一个数组或对象。

部署中

目前,我不处理许多公共插件/主题,因此我不测试插件与多个版本的WordPress的兼容性。我在开发服务器上编码,然后通过Subversion将代码移入生产环境。


您可以使用xdebug获得非常好的var_dump。xdebug堆栈跟踪也可以告诉您将什么参数传递给函数(这非常有帮助)
Taras Mankovski 2010年

3

WordPress主题开发流程

  • 将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。

  • 将主题文件夹上载到WordPress以进行测试和进一步开发

WordPress开发工具

  • 内置FTP的Aptana Studio WorkPlace代码编辑器

  • 油灰

  • 双1920 x 1200显示器,一个打开浏览器,另一个打开代码编辑器

  • Wacom Intuis 4平板电脑

  • 具有Yslow和Google Page速度的Firebug


3

我的工作流程非常简单。我跟上4个环境。测试,开发,登台和生产。

工作流程

我使用git进行版本控制;我忽略了wp-config.php文件,因此当我在不同位置进行推拉操作时,该文件不会被覆盖。我将unfuddle用作公共/中央存储库,以供其他人使用。

这似乎工作得很好。在进行“测试”时,我会尽可能多地承诺。每天至少(如果不是更多)一次,我会同步处理,并让开发服务器提取更改。我尽量不要在服务器上进行任何直接工作,所以我主要只是在进行更改。如果对数据库进行了重大更改(新插件,更新的内容等),则将其从“测试”中转储;备份开发并导入转储。

我对登台使用相同的过程。登台与生产位于同一台服务器上,因此请仔细检查抛光并确保所有设置和模块在生产服务器上均正常运行。准备好后,我将备份所有生产文件和数据库,并从暂存中复制文件和数据库。

由于wp-config.php不在git中,因此可以轻松地进行推送和拉取。从暂存阶段转到生产阶段时,我复制了文件,而不使用git,因此必须确保wp-config.php是正确的。

我问了一个类似的问题,我将研究使用此插件。

我还考虑过使用Capistrano。并创建一个非常详细的迁移脚本,它将处理并处理所有文件和数据库备份/迁移以及更新文件路径和URL。

工具类

  • 我的编辑器为Textmate,尽管我开始使用MacVim。我在Linux上使用vim。
  • Sequel Pro用于数据库操作。如果无法连接,我将使用PHPMyAdmin
  • 如果需要,请传输FTP。
  • git用于版本控制。尽管我已经在Textmate和GittiApp中使用了一些客户端,但通常都是通过命令行。

1

对我有帮助的一件事(尤其是在处理多个客户端主题时)是在我的开发服务器上使用WordPress Multisite安装。这样,我可以根据需要拥有任意数量的空缺职位,而不必担心客户端A看到客户端B的主题。再加上全面的示例内容包,每次创建新网站时我都会加载这些示例包,您将拥有一个很棒的开发系统。


0

我从使用生命控制系统的服务器上的就地黑客攻击,到使用版本控制系统和自动化测试的更结构化的dev / test / stage / lifecycle。这取决于工作。

接下来,我在运行bug时将bug报告回wordpress项目。

对于插件开发,我尝试不总是重新发明轮子,而是根据现有的原理和模式来构建新的轮子。


0

这是我的工作流程:

  • 一旦获得网站的要求和设计,我便开始创建项目的目录。
  • 使用Git Statictheme/plugin文件Dynamic夹和文件夹中的 文件夹进行版本控制。
  • 为项目创建虚拟主机。我遵循以下约定:

    http://project1.dev/

    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每天使用工具,这使我感到难过。

但是我确实为我的Sprite2CSS项目使用了ANT构建工具,结合了一些PHP脚本来使用ANT。

工具类


无论是在Windows还是Ubuntu上,我都使用以下命令:

  • Netbeans + SublimeText2 +记事本++
  • WAMP-(PHP)
  • 假邮件
  • 吉特
  • Chrome和DevTools +带有Firebug和Safari的Firefox + IE进行测试
  • 慢!
  • Filezilla / WinSCP / NB的内置FTP
  • Cygwin +命令提示
  • 作曲家
  • NodeJS + NPM
  • SQLYog社区版+ PHPMyAdmin

我愿意就改善我的工作流程提出建议。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.