В чем преимущества использования класса Zend_Config? - PullRequest
1 голос
/ 11 января 2012

Я новичок в Zend Framework. Я знаю, почему мы используем этот код для соединения с базой данных, хотя мы можем использовать и приведенный ниже код, который прост и не включает класс, в чем преимущества включения Zend_config ()

require_once 'Zend/Config.php';
$arrConfig = array(
  'webhost'=>'localhost',
  'appName'=>'My First Zend',
  'database'=>array(
      'dbhost'=>'localhost',
      'dbname'=>'zend',
      'dbuser'=>'root',
      'dbpass'=>'admin'
      )
  );

$config = new Zend_Config($arrConfig);
$params = array('host'  =>$config->database->dbhost,
            'username'  =>$config->database->dbuser,
            'password'  =>$config->database->dbpass,
            'dbname'    =>$config->database->dbname
            );
$DB  = new Zend_Db_Adapter_Pdo_Mysql($params);
$DB->setFetchMode(Zend_Db::FETCH_OBJ);

, если я могу сделать это

include_once 'Zend/Db/Adapter/Pdo/Mysql.php';
$params = array('host' => 'localhost',
        'username'  => 'root',
        'password'    => '',
        'dbname'        => 'zend'
           );
 $DB = new Zend_Db_Adapter_Pdo_Mysql($params);
 $DB->setFetchMode(Zend_Db::FETCH_OBJ);

1 Ответ

5 голосов
/ 11 января 2012

в том смысле, в каком вы используете Zend_Config, на самом деле вам не очень удобно иметь настройки в объекте конфигурации.

Обычно в приложениях ZF есть отдельное application.iniфайл, который содержит все настройки:

$config = new Zend_Config_Ini('/path/to/config.ini',
                              'production');

Тогда удобно разделить среды (например, производство и разработка) на разные разделы:

; Production site configuration data
[production]
database.adapter         = pdo_mysql
database.params.host     = db.example.com
database.params.username = dbuser
database.params.password = secret
database.params.dbname   = dbname

; Development site configuration data inherits from production and
; overrides values as necessary
[development : production]
database.params.host     = dev.example.com
database.params.username = devuser
database.params.password = devsecret

, что означает загрузку конфигурации с помощью:

$config = new Zend_Config_Ini('/path/to/config.ini',
                              'development');

вернет конфигурацию разработки.

http://framework.zend.com/manual/en/zend.config.adapters.ini.html

...