Php 你是如何与“客户”合作的;“全球”;ZF内部的配置?

Php 你是如何与“客户”合作的;“全球”;ZF内部的配置?,php,zend-framework,configuration,globalization,Php,Zend Framework,Configuration,Globalization,我不确定使用全局配置选项的最佳方式是什么。 例如,如果上载文件时,我希望将其移动到正确的文件夹中 我可以对路径进行硬编码,但这并不是最好的选择 我可以用一个常数 我可以使用config.ini并设置一些常见的配置选项。也许然后在注册表中注册一个配置对象 你好!?有什么建议吗?A中的建议是ZF在此遵循的常用方法。许多ZF类都可以接受配置,在ZF中几乎没有更好的方法来处理它 (请记住,注册表模式不过是一个美化的全局模式。)中的a是ZF在此遵循的常用方法。许多ZF类都可以接受配置,在ZF中几乎没有

我不确定使用全局配置选项的最佳方式是什么。 例如,如果上载文件时,我希望将其移动到正确的文件夹中

  • 我可以对路径进行硬编码,但这并不是最好的选择
  • 我可以用一个常数
  • 我可以使用config.ini并设置一些常见的配置选项。也许然后在注册表中注册一个配置对象
你好!?有什么建议吗?

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

(请记住,注册表模式不过是一个美化的全局模式。)

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


(请记住,注册表模式不过是一个美化的全局模式。)

我使用
Zend_注册表::set('foo','/path/to/correct/folder')
一次,然后在需要时随时使用
Zend_注册表::get('foo')
调用它。很好

我使用
Zend_Registry::set('foo','/path/to/correct/folder')
一次,然后在需要时随时使用
Zend_Registry::get('foo')
调用它。很好

创建一个config.ini,并在其中分离您的配置,如下所示:

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

[production]
;File Upload settings
FileUpload.path = /production/path
现在,在Bootstrap.php中的某个地方,您可以执行以下操作:

$config = new Zend_Config_Ini(
    self::$root . '/config/config.ini',
    'development'
);
self::$registry->configuration = $config;
以及在任何控制器中:

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

创建一个config.ini,并在其中分离您的配置,如下所示:

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

[production]
;File Upload settings
FileUpload.path = /production/path
现在,在Bootstrap.php中的某个地方,您可以执行以下操作:

$config = new Zend_Config_Ini(
    self::$root . '/config/config.ini',
    'development'
);
self::$registry->configuration = $config;
以及在任何控制器中:

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

你的意思是“这真的不是最好的事情”,我想?确实:)我编辑了我的问题你的意思是“这真的不是最好的事情”,我想?确实:)我编辑了我的问题我不认为这是错的(我删除了否决票,我不再否决票)。但我认为可能有更好的方法。也就是说,我知道的很少……A/A注册表不是一个全局数据容器。使用
$GLOBALS
进行此操作。;)@KingCrush,$GLOBALS会导致无法读取的代码,但是你能解释一下什么是注册表吗?我不认为这是错误的(我删除了downvote,我不再downvote)。但我认为可能有更好的方法。也就是说,我知道的很少……A/A注册表不是一个全局数据容器。使用
$GLOBALS
进行此操作。;)@KingCrush,$GLOBALS会导致无法阅读的代码,但您能解释一下什么是注册表吗?您认为如何将它与动作助手一起使用,以便能够执行类似$this->getConfiguration()->之类的操作?我想您可以这样做,只要记住它的单元测试含义,如果你最终对你的控制器进行单元测试。你认为如何将它与一个动作助手一起使用,使它能够做$this->getConfiguration()->之类的事情?我想你可以这样做,只要记住单元测试的含义,如果你最终对你的控制器进行单元测试。