После долгой борьбы и исследований, я наконец-то смог запросить базу данных в таблице mysql, используя Zend Framework 2.
Я использую автозагрузчик. Вот код:
require_once 'Zend/Loader/StandardAutoloader.php';
$loader = new Zend\Loader\StandardAutoloader(array('autoregister_zf' => true));
$loader->register();
use Zend\Db\Adapter\Adapter;
$params = array(
'driver'=> 'Pdo_Mysql',
'hostname' => 'localhost',
'username' => '*****',
'password' => '*****',
'dbname' => '*****'
);
try{
$adapter = new Adapter($params);
}
catch (Exception $e){
echo $e->getMessage();
}
$sql = 'select * from user';
$rs = $adapter->createStatement($sql)->execute(array(100,100));
print_r(iterator_to_array($rs));
echo $rs->count();
Я хочу знать, каков правильный способ и лучшая практика для запроса таблицы MySQL. Раньше в ZF1 было намного проще, но теперь я понимаю, что ZF2 гораздо более объектно-ориентирован.
Я хочу оптимизировать производительность и хорошее кодирование. Можете ли вы сказать мне, хорошо ли то, что я сделал, и как лучше всего запрашивать базу данных mysql при использовании ZF2, так как будет много запросов.
Прежде всего.
После долгой борьбы и исследований
Я не согласен с вами. Вы можете найти пример того, что ваш поиск везде.
Ваш код вообще не уважает подход ООП, он даже не уважает стандартное кодирование Zf2, поэтому вы должны его сломать. Я также рекомендую использовать Zend скелет приложение чтобы показать вам, как использовать Zf2 со стандартной архитектурой.
Для ответа на ваш вопрос:
Zf2 имеет конфигурационную часть для настройки параметров соединения.
Вы должны использовать его, это лучшая практика в соответствии с самой документацией.
Это полное руководство О БД и модели вам точно помогут.
В этом уроке вы можете увидеть пример конфигурации соединения, которую вы должны посмотреть в файле конфигурации
//db.config.php
return array(
'db' => array(
'driver' => 'Pdo',
'dsn' => 'mysql:dbname=[yourDb_name];host=localhost',
'driver_options' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES \'UTF8\''
),
),
'service_manager' => array(
'factories' => array(
'Zend\Db\Adapter\Adapter'
=> 'Zend\Db\Adapter\AdapterServiceFactory',
),
),
);
Затем отсюда вы также можете указать в другом конфигурационном файле свои учетные данные для проблем / средств безопасности и / или среды.
//credential.config.local.php
return array(
'db' => array(
'username' => 'YOUR USERNAME HERE',
'password' => 'YOUR PASSWORD HERE',
),
);
Все конфигурационные файлы объединены. Используй это !
Следуя этому руководству, вы сможете создать слой модели и взаимодействовать с базой данных в ООП-подходе.
Вы должны использовать шаблон проектирования, такой как шаблон MVC, и некоторые другие в соответствии с вашими потребностями. Но если вы хотите соблюдать стандарты кодирования zf2, это единственный способ!
Других решений пока нет …