2011-04-07 19 views
1

我不确定使用全局配置选项的最佳方式。 例如,如果文件上传时我想将其移动到正确的文件夹中。您如何使用ZF中的“全局”配置?

  • 我可以硬编码路径,但它不真的最好的事情。
  • 我可以使用CONSTANT
  • 我可以使用config.ini并设置一些常用的配置选项。也许然后在注册表中注册一个配置对象

你好吗?有什么建议?

+0

你的意思是*“这真的不是最好的东西”*,我认为? – karim79 2011-04-07 23:48:00

+0

确实:)我编辑了我的问题 – JohnT 2011-04-08 08:21:10

回答

3

A Zend_Config objectRegistry是ZF在此处遵循的常用方法。许多ZF类可以接受配置,在ZF中几乎没有更好的方法来处理它。

(记住,注册表模式比一个荣耀的全球多一点呢。)

+0

你认为如何使用动作助手来做类似$ this-> getConfiguration() - >的事情? – JohnT 2011-04-08 08:21:44

+0

我想你可以做到这一点,只要保持单元测试的含义,如果你最终单元测试你的控制器。 – Charles 2011-04-08 15:11:10

1

我用Zend_Registry::set('foo', '/path/to/correct/folder')一次,然后调用它,每当我与Zend_Registry::get('foo')任何时候我需要它需要它。很棒!

+0

为什么投票?我做错了吗? – spanky 2011-04-07 23:53:28

+0

我不认为这是错误的(我删除了downvote,我没有downvote了)。但我认为可能有更好的方法。也就是说,我知道的很少...... – karim79 2011-04-08 00:02:34

+0

/A注册表不是全局数据容器。使用'$ GLOBALS'即可。 ;) – KingCrunch 2011-04-08 00:19:08

3

创建一个config.ini文件,并在其中分离,像这样的配置:在你的bootstrap.php中某处

[development] 
;File Upload settings 
FileUpload.path = /some/path 

[production] 
;File Upload settings 
FileUpload.path = /production/path 

现在,你可以这样做:

$config = new Zend_Config_Ini(
    self::$root . '/config/config.ini', 
    'development' 
); 
self::$registry->configuration = $config; 

而且在任何控制器:

$config = Zend_Registry::get('configuration'); 
echo $config->FileUpload->path;