【发布时间】:2011-01-06 09:04:53
【问题描述】:
我更喜欢使用原生 php 进行 Zend 配置。 我如何将此 Zend application.ini 段转换为 php?
[development : production]
据推测生产部分继承自开发部分。 P.S 我们这里说的是 ZEND 框架。
更新:看来我的问题并不清楚。
我只想知道 Zend_Application 与 ini 或 xml 相比如何处理 php 选项文件中的继承/嵌套。
INI 配置示例 (生产部分的所有内容都将由测试和开发部分继承):
[production]
autoloaderNamespaces[] = "My_"
bootstrap.path = APPLICATION_PATH "/Bootstrap.php"
bootstrap.class = "Bootstrap"
[testing : production]
bootstrap.class = "productionBootstrap"
[development : production]
bootstrap.class = "developmentBootstrap"
XML 配置示例 (生产部分的所有内容都将被暂存部分继承,注意扩展关键字):
<?xml version="1.0"?>
<configdata>
<production>
<webhost>www.example.com</webhost>
<database>
<adapter>pdo_mysql</adapter>
<params>
<host>db.example.com</host>
<username>dbuser</username>
<password>secret</password>
<dbname>dbname</dbname>
</params>
</database>
</production>
<staging extends="production">
<database>
<params>
<host>dev.example.com</host>
<username>devuser</username>
<password>devsecret</password>
</params>
</database>
</staging>
</configdata>
PHP 配置示例 没有继承/嵌套? 有没有办法在不进行手动数组合并的情况下使继承/嵌套工作?
return array(
'production' => array(
$test1 => 'aaaaaaa'
),
'staging' => array(
$test2 => 'bbbbbb'
),
'testing' => array(
$test3 => 'bbbbbb'
)
)
更新
回想起来 - 只是想补充一点,使用 php 数组而不是 ini 文件进行配置有一定的优势: some info
· 它们可以被操作码缓存缓存
· 他们支持常量
· 它们允许创建易于阅读的配置树
· 它们支持布尔值和整数值
【问题讨论】:
-
您为什么更喜欢使用它? Zend 框架为 ini 和 xml 文件提供了出色的配置实现。
-
恕我直言 1) 我不认为 php 比 raw.ini 复杂得多 2) 例如处理布尔值更容易 - 在 ini 中一切都是字符串。 3)这是获取变量的最快方式。
-
为什么投反对票? Downvoter - 想解释一下反对票吗?
-
1/ 也许不是,但您要求重新发明轮子。它不是那么简单,否则你就不会在这里,你会继续使用
.ini2/ 在 PHP 中没有任何东西是强类型的,所以这没有意义 -
能否请您澄清您在解决方案中寻找的内容。你想从 .ini 转换成另一种格式还是想知道如何解析这样的块?
标签: php zend-framework