在任何给定的Zend Framework项目中,我可以在2或3个位置工作 - 我的工作PC,家用PC或MacBook。我的源代码总是在SVN中,我通常在将完成的工作推送到生产服务器之前在开发服务器上工作。在这种环境中,我从未太确定我应该在哪里使用Zend_Tool。
我怎么看,有两种选择:
我倾向于说最可靠的方式是多个Zend_Tool设置,但我有兴趣听听人们是否可以想到这个的任何潜在问题或者为什么我应该做出不同的选择。
感谢。
答案 0 :(得分:2)
Zend_Tool实际上打算在开发环境中使用。你在多个地方使用它的感觉是非常正确的,实际上,唯一的问题是Zend_Tool用来知道项目上不同配置的XML之间的同步,然而,这只会在同一版本中进行重大更改时发生在不同的工作副本上(通用版本控制限制/问题/无论如何)。
除此之外,你根本不应该有任何问题。
答案 1 :(得分: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
环境变量。
毋庸置疑,如果你有错误的环境变量集,这是非常危险的,并且可能会爆炸,但对于我们这些使用ZFDoctrine将Doctrine命令集成到Zend Tool中的人,我们没有其他很多选择。它涉及学说迁移。
答案 2 :(得分:1)
我们在工作中所做的是创建一个实例配置。通过这样做,我们有3个配置,具体取决于运行应用程序的环境。
然后我们根据我们在配置文件中指定的环境设置配置类以加载具有工具路径和数据的配置。
基本上我们有一个名为Chooser.txt的文件,该文件将在文件中包含要运行的环境的配置文件的文件名。当我们想在本地运行它时,我们将Chooser.txt文件编辑为local_config.txt(我们使用.txt以便我们可以评估某些配置,然后我们.ht访问配置目录,这样就没有人可以查看它了)。当我们推送到开发服务器时,我们然后编辑Chooser.txt来说dev_config.txt,依此类推。然后在dev_config.txt或local_config.txt中我们将获得工具和php设置等的配置变量...
现在有了这个说我们在每个环境中安装工具,所以我们将在我们的本地环境,开发和生产中使用我们的工具和库。通过在本地化环境中使用我们的工具,可以在更新/修补工具时更轻松地进行测试,这样您就不必在生产服务器上修补工具,而应该首先在开发服务器上测试它们。