Zend 1.12 に基づくプロジェクトに取り組んでいます。ハッキングを防ぐために、すべてのファイルをエンコードする必要があるという新しい要件があります。すべての.phpファイルをエンコードするioncubeエンコーダーを使用しましたが、db情報ユーザー名、パスワード、秘密鍵などを保存するapplication.iniはエンコードしません。2つのアプローチがあります。
1) application.ini ではなく、config.php などの .php ファイルに構成を配置します。
2)ioncubeがapplication.iniをエンコードする
最初のアプローチで、Zend Config Introductionを見つけまし た。ここでは、配列に構成ストアを含めることができます。これらの構成を利用できる Bootstrap.php のセットアップの具体的な例が必要です。現在、モデルはすべて Zend_Db_Table_Abstract から拡張されています。すべてのapplication.ini db構成をconfig.phpに移行すると、すべてのdb操作が機能し、フロントコントローラーにいくつかのインスタンスがあり、$this->applicationOptionsを使用することが本当に必要です。私の配置設定もこれでうまくいくことを願っています。助けてください
2番目のアプローチでは、ioncubeでapplication.iniをエンコードできる解決策があまり見つかりませんでした
これは私の設定ファイルです
return $configArray = 配列(
'db' => array( 'adapter' => 'pdo_mysql', 'params' => array( 'host' => 'localhost', 'username' => 'root', 'password' => 'root', 'dbname' => 'test' ) ) );
Bootstrap.php でこれを行うと、動作します
$config = new Zend_Config(require APPLICATION_PATH .'/configs/config.php'); $db = Zend_Db::factory($config->db->adapter, $config->dv->params->toArray()); $db = Zend_Db::factory($config->db); Zend_Db_Table::setDefaultAdapter($db);
しかし、私がするとき
protected function _initDatabase(){ $config = new Zend_Config(require APPLICATION_PATH .'/configs/config.php'); $resource = $this->getPluginResource('db'); var_dump($this->getPluginResource('db')); // this will be null.
私の質問は、resources.db.adapter、resources.db.params.host などを模倣し、pluginResources または getoptions によって取得されるように、構成で何か異なることを行う必要があるということです。