在Zend而不是application.ini中,我可以将配置存储在像config.php这样的php文件中吗

在Zend而不是application.ini中,我可以将配置存储在像config.php这样的php文件中吗,php,zend-framework,encoding,encode,ioncube,Php,Zend Framework,Encoding,Encode,Ioncube,我正在做一个基于Zend 1.12的项目。有一个新的要求,我们必须编码我们的所有文件,以防止黑客攻击。我们使用了ioncube编码器,它对所有的.php文件进行编码,但不对application.ini进行编码,在application.ini中存储数据库信息用户名、密码、密钥等。有两种方法: 1) 让配置驻留在.php文件中,例如config.php,而不是application.ini 2) 让ioncube encode application.ini 使用第一种方法,我发现可以在阵列中存

我正在做一个基于Zend 1.12的项目。有一个新的要求,我们必须编码我们的所有文件,以防止黑客攻击。我们使用了ioncube编码器,它对所有的.php文件进行编码,但不对application.ini进行编码,在application.ini中存储数据库信息用户名、密码、密钥等。有两种方法:

1) 让配置驻留在.php文件中,例如config.php,而不是application.ini

2) 让ioncube encode application.ini

使用第一种方法,我发现可以在阵列中存储配置。我需要一个具体的例子,在Bootstrap.php中安装,它可以利用这些配置。现在我们所有的模型都是从Zend_Db_Table_Abstract扩展而来的。我真的希望当我将所有application.ini数据库配置迁移到config.php中时,所有的数据库操作都可以工作,并且前面有几个实例控制器使用$this->applicationOptions。我希望我的配置,这将工作以及。请帮忙

使用第二种方法,我发现ioncube上的分辨率不高,无法对application.ini进行编码

这是我的配置文件

返回$configArray=array(

当我在Bootstrap.php中执行此操作时,它会正常工作

但当我这么做的时候


我的问题是,我是否应该在配置中做任何不同的操作,这样它将模拟resources.db.adapter、resources.db.params.host等,并由pluginResources或getoptions拾取。通常,预期用户将使用其中一个适配器类,如Zend_Config_Ini或Zend_Config_Xml,但如果配置数据在PHP数组中,可以简单地将数据传递给Zend_Config构造函数,以利用简单的面向对象接口

基本上,首先创建一个包含以下配置的PHP文件:

// config.php
return array(
  ...
  ...
);
然后,从另一个文件中,使用以下配置文件:

$config = new Zend_Config(require 'config.php');
在Bootstrap.php中,尝试获得如下配置

protected function _initDb()
{
    $resource = $bootstrap->getPluginResource('db');

    $db = $resource->getDbAdapter();

    Zend_Registry::set("db", $db);
}
$dbAdapter = Zend_Registry::get("db");
在Bootstrap.php中注册db变量后,您可以这样访问它

protected function _initDb()
{
    $resource = $bootstrap->getPluginResource('db');

    $db = $resource->getDbAdapter();

    Zend_Registry::set("db", $db);
}
$dbAdapter = Zend_Registry::get("db");

通常,用户会使用其中一个适配器类,如Zend_Config_Ini或Zend_Config_Xml,但如果配置数据在PHP数组中可用,则可以简单地将数据传递给Zend_Config构造函数,以利用简单的面向对象接口

基本上,首先创建一个包含以下配置的PHP文件:

// config.php
return array(
  ...
  ...
);
然后,从另一个文件中,使用以下配置文件:

$config = new Zend_Config(require 'config.php');
在Bootstrap.php中,尝试获得如下配置

protected function _initDb()
{
    $resource = $bootstrap->getPluginResource('db');

    $db = $resource->getDbAdapter();

    Zend_Registry::set("db", $db);
}
$dbAdapter = Zend_Registry::get("db");
在Bootstrap.php中注册db变量后,您可以这样访问它

protected function _initDb()
{
    $resource = $bootstrap->getPluginResource('db');

    $db = $resource->getDbAdapter();

    Zend_Registry::set("db", $db);
}
$dbAdapter = Zend_Registry::get("db");

您使用的是
getPluginResource()
,因此您需要按以下方式拥有配置密钥:

resources.db.adapter = ...
resources.db.params.host = ...
...
或者您的config.php应该如下所示:

// config.php
return array(
  'resources' => array(
    'db' => array(
       ...
    ),
  ),
  ...
);

这可能会有帮助。

您使用
getPluginResource()
,因此您需要以以下方式拥有配置密钥:

resources.db.adapter = ...
resources.db.params.host = ...
...
或者您的config.php应该如下所示:

// config.php
return array(
  'resources' => array(
    'db' => array(
       ...
    ),
  ),
  ...
);

这可能会有帮助。

我遵循了你的方法,它似乎很有效。不错。我确实扩展了我在原始文章中提出的问题。任何帮助都将不胜感激。建议的解决方案不起作用。在引导中,我这样做了,但var_dump on$resource=null。受保护的函数_initDatabase(){$config=new Zend_config(需要应用程序_路径。'/configs/config.php');$resource=$this->getPluginResource('db');var_dump($resource);我遵循了你的方法,它似乎起了作用。不错。我确实扩展了我在原始帖子中的问题。任何帮助都将不胜感激。建议的解决方案不起作用。在bootstrap中,我这样做了,但var_dump on$resource=null。受保护的函数_initDatabase(){$config=new Zend\u config(需要应用程序路径。'/configs/config.php');$resource=$this->getPluginResource('db');var_dump($resource);是的,我也试过了,但仍然不起作用。在你给我的例子13中的页面上,我甚至通过嵌套配置和生产数组来模拟xml配置,但仍然没有成功。在引导变量中,$resource=$this->getPluginResource('db')仍然为空是的,我也尝试过,但仍然不起作用。在你给我的例子13中的页面上,我甚至通过嵌套配置和生产数组来模拟xml配置,但仍然没有成功。在引导变量中,$resource=$this->getPluginResource('db')的dump仍然为空