开发,分期环境等等 - 问题!! :(

时间:2009-07-02 15:11:15

标签: php project production staging

这是我的故事,排序很长 - 请耐心等我:)

我目前是这里唯一的程序员,没有太多的设计要做 - 但是。当我开始时,我们没有源代码控制, - 直接从“开发”服务器编辑的文件 - 使用rsync同步到生产服务器。

我没有太多经验做这种事情 - 这是我的第一份工作(我19岁) - 但是我已经设置了一些工作,但我不知道它是否可以在与coolaborating合作时轻松工作设计师和/或更多程序员。

我的IDE是Zend。 Project是SVN签出的项目。

当我需要进行更改时,我会这样做,保存并点击我的本地计算机,该计算机具有apache设置以从该项目中的那些文件中读取。大多数情况下,它们是Webservices或只是一个文件 - 而不是整个项目。

我开始使用另一个项目,要求我使用完整的域名(因为它需要解析子域名),所以我设置我的本地apache使用该域名,即使它没有指向我。使用foxyProxy并将http://*.domain.com和http://domain.com作为一个规则并将其指向127.0.0.1 - 这允许我使用www.domain.com但是命中dev机器(这是我的) 。

我提交更改,然后运行这种ghetto bash脚本,检出SVN代码并使用RSYNC同步到所有服务器。

好吧,很快我们就会让设计师与我合作。我的代码被拆分成一种View Controller系统 - 但我不使用任何php模板系统

我有一个在这家公司工作的伙伴。他们这样做的方式与我的方式有所不同。我认为他是如何完成的。

代码位于Z:\驱动器中 - 显然是网络共享(我不是100%肯定) 该项目使用该代码,当他保存某些东西时,他打开firefox并打开foxyproxy。它使用HTTP代理服务器进行配置。我认为它的工作方式是,HTTP服务器配置为使该公司开发的任何站点,进入bbbb(开发)IP而不是aaaa(生产) - 我希望我知道它是什么软件或者哪个代理软件可以做到这一点。

他使用JIRA并且jira有一个“提交”按钮 - 不熟悉它所以我不知道它是如何工作的。

令人困惑的部分是,当他进入网站时,据说有一个开发“下拉列表”,他可以从任何开发人员的变化中选择并查看他们的工作内容。

基本上,每个可以提交的人都有自己的环境 - 而不仅仅是一个环境。 **如何实现这样的事情,任何想法? **

他不知道它是如何运作的,因为他是那家公司的新人,但我希望他能快速学习!!

我的一些问题:

  • 您的开发和登台环境如何设置?
  • 设计师是否应该完全访问php代码,即使他们需要的只是“视图”?
  • 实施“多用户”环境的简单方法是什么?
  • 我们应该使用模板系统还是基本的<?= $ name?>为设计师和他们的HTML代码做的工作?
  • 对我做得不对的任何评论?
PS:我的老板是技术人员(他曾经是一名程序员),但他从未使用我们现在使用的任何工具 - 我是负责这一切的人 - 他不知道SVN是什么:)

2 个答案:

答案 0 :(得分:1)

  

您的开发和登台环境如何设置?。

每个开发人员都安装了本地XAMP。 SVN仓库中包含默认配置,默认虚拟主机,数据库模式等。使用rsync进行更新。但我不认为它是一种非常有效的发布管理方式,即使它非常灵活。 DNS的东西处理我们的DNS服务器(这是一个惊喜)。命名约定是:

  • 开发:example.local
  • 制作:example.org
  

设计师是否应该完全接受php代码,即使他们需要的只是“视图”?

如果您的所有视图脚本都在一条路径下,为什么不让设计师仅检查此路径?根据您管理仓库的方式,您可以设置非常具体的权限。

  

我们应该使用模板系统还是可以基本完成设计师及其HTML代码的工作?

恕我直言PHP是一个模板引擎,实际上没有必要使用另一个。如果设计师可以写%VARIABLE%,他也可以写<?php echo $variable; ?>。只要您必须在模板引擎中实现控制结构(forif等),您就会有一定程度的复杂性,这与基本的PHP控件结构没有区别。如果你不能相信你的设计师,你需要一个新的...; - )

答案 1 :(得分:0)

  

“但我不使用任何php模板系统”......

PHP 是模板语言。它甚至被大多数HTML编辑器正确识别,因此如果您将大部分“工作”代码从“视图”文件中分离出来,那么任何非脑死亡设计师都应该能够正确使用它。或者至少将所有代码放在PHP代码的顶部,只留下oneliners混合到HTML中。

就个人而言,我只允许<?=$varname?>之类的东西,像

这样的简单循环
<?php for $row in pickdata() { ?>
  <tr>
    <td><?=$row->field1?></td>
    <td><?=$row->field2?></td>
  </tr>
<?php } ?>

和一些<?php if (test()) {?>