4

在任何给定的 Zend Framework 项目中,我都可以在 2 或 3 个位置工作——我的工作 PC、家用 PC 或我的 MacBook。我的源代码始终在 SVN 中,我通常在将完成的工作推送到生产服务器之前在开发服务器上工作。在这种环境中,我一直不太确定应该在哪里使用 Zend_Tool。

我怎么看,有2个选择:

  1. 设置为在每个开发环境上使用 Zend_Tool 在本地工作,然后从那里推送到开发服务器,检查清单等与每个 Zend_Tool 的使用情况。
  2. 直接在开发服务器上使用 Zend_Tool,然后下载每个添加/更改,然后推送到 SVN。

我倾向于说最可靠的方法是多个 Zend_Tool 设置,但我很想听听人们是否能想到任何潜在的问题或我应该做出不同选择的原因。

谢谢。

4

3 回答 3

2

Zend_Tool 实际上打算在开发环境中使用。您对在多个地方使用它的感觉是非常正确的,实际上,唯一的问题是 Zend_Tool 用于了解项目中不同配置的 XML 之间的同步,但是,只有在同一修订期间进行重大更改时才会发生这种情况在不同的工作副本上(常见的版本控制限制/问题/其他)。

除此之外,你应该没有任何问题。

于 2010-09-15T01:40:21.363 回答
2

Zend_Tool 硬编码APPLICATION_ENV文件中的“开发”Tool/Project/Context/Zf/BootstrapFile.php

你可以鲁莽地更改源代码(这不是一个好主意,但它会起作用)。应用这个补丁将允许您使用环境 shell 变量来告诉 Zend_Tool 您在哪个环境中。

    --- BootstrapFile.php (saved version)
    +++ (current document)
    @@ -106,9 +106,11 @@
                     define('APPLICATION_PATH', $this->_applicationDirectory->getPath());
                     $applicationOptions = array();
                     $applicationOptions['config'] = $this->_applicationConfigFile->getPath();
    +                
    +                $env = getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'development';

                     $this->_applicationInstance = new Zend_Application(
    -                    'development',
    +                    $env,
                         $applicationOptions
                         );
                 }
    ,

只记得设置一个APPLICATION_ENV环境变量。

不用说这是非常危险的,如果您设置了错误的环境变量,可能会崩溃,但是对于我们这些使用将 Doctrine 命令集成到 Zend 工具中的 ZFDoctrine 的人来说,我们没有太多其他选择学说迁移。

请参阅此参考 http://framework.zend.com/issues/browse/ZF-9898?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel

于 2011-03-04T23:39:18.057 回答
1

我们在我的工作中所做的是创建一个实例配置。通过这样做,我们有 3 个配置,具体取决于应用程序运行的环境。

  1. 本地机器(编程时调试)。
  2. 开发(用于在投入生产之前测试我们的代码)。
  3. 生产(现场环境)。

然后,我们设置配置类以根据我们在配置文件中指定的环境加载具有我们工具的路径和数据的配置。

基本上,我们有一个名为 Chooser.txt 的文件,该文件中将包含要运行的环境的配置文件的文件名。当我们想在本地运行它时,我们将 Chooser.txt 文件编辑为 local_config.txt(我们使用 .txt 以便我们可以评估某些配置,然后我们 .ht 访问配置目录,因此没有人可以查看它)。当我们推送到开发服务器时,我们然后编辑 Chooser.txt 以说 dev_config.txt 等等。然后在 dev_config.txt 或 local_config.txt 我们将有工具的配置变量和 php 设置等......

现在,我们在每个环境中安装该工具,因此我们将在本地环境、开发和生产环境中拥有我们的工具和库。通过在本地化环境中使用我们的工具,可以更轻松地在更新/修补工具时进行测试,这样当您应该首先在开发服务器上测试它们时,您不仅仅是在生产服务器上修补工具。

于 2010-09-09T16:00:41.127 回答