Не так давно, начал разбираться с Zend Framework, в этом очень помогают скринкасты от Jon Lobenlsold. Документация на офф сайте скудная и раскрывает только частные понятия отдельных классов, которые в принципе итак показываются с помощью той же IntelliSense Eclipse.
Подвигло меня написать этот пост следующее, я не мог понять как лучше коннектиться к базе, возможно мое решение поможет новичкам в ZF, таким же как и я. Я видел решение с созданием Helper‘а, но как выяснилось все намного проще. Как показала практика решение с Helper подходит только тогда, когда коннект к базе происходит из Контроллеров. Я же хочу делать запросы из собственного класса, который лежит у меня в папке /library/App/.
Итак для коннекта к базе необходимо сделать следующее —
Прописать следующие строчки в application.ini (я прописал в секцию production)
resources.db.adapter = "PDO_MYSQL" resources.db.params.charset = "utf8" resources.db.params.host = "127.0.0.1" resources.db.params.username = "root" resources.db.params.password = "123456" resources.db.params.dbname = "yourdb"
После этого можно делать запросы из любого класс можно следующим образом.
$dbAdapter = Zend_Db_Table::getDefaultAdapter(); $result = $dbAdapter->query("SELECT * FROM users")->fetchAll(); var_dump($result);
В данном случае статический метод getDefaultAdapter возвращает Zend_Db_Adapter_Abstract, то есть тоже самое, что и при создании подключения через factory, а именно:
$config = Zend_Registry::get('config'); $dbAdapter = Zend_Db::factory($this->config->db->type, array('host' => $config->db->host, 'username' => $config->db->user, 'password' => $config->db->pass, 'dbname' => $config->db->name ) );
В первом случае настройки автоматически подхватываются из application.ini, во втором же их приходится прописывать вручную.
Буду рад, если кому-нибудь данное открытие поможет как и мне.
Спасибо за статью. По Zend Framework на самом мало полезной и актуальной информации на русском языке.
Очень интересно. Мне понравилось.
вот Вам спасибо! )
Спасибо, отличная статья для новичков!)
Учите людей писать запросы в Action, а модели для кого?
С чего вы делаете такие выводы ?