
phalcon и русские символы
Выбирая инструмент для работы над проектом, я посмотрел на современные php фреймворки. Так как Kohana по сути прекратила свое развитие, я решил поискать ей замену. И мой выбор пал на очень интересный и перспективный, на мой взгляд, фреймворк phalcon.
Для тех кто не в курсе расскажу в двух словах о фреймворке phalcon. Самое главное его преимущество — высокая скорость работы. Это реально очень быстрый инструмент. Все потому, что написан он на C и представляет собой не набор php файлов, как у большинства фреймворков, а расширение php. Именно скорость работы меня и подкупила. При этом возможности фреймворка довольно обширны и не уступают известным конкурентам.
Немного поковырявшись с новой игрушкой я набросал небольшой проект. И столкнулся с проблемой — браузер выводил русские буквы в виде «кракозябр». При этом кодировка браузера была установлена в utf-8, да и в базе данные хранились в Unicode. Понятно, что причина в фреймворке. Поискав решение я довольно быстро нашел решение, которым и делюсь с читателем.
Итак, чтобы решить проблемму русских символов и установить кодировку utf-8 при соединении с mysql базой данных необходимо в файле \app\config\services.php в настройках подключения добавить:
'options' => array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8' )
В конечном итоге должно получится вот так:
/**
* Database connection is created based in the parameters defined in the configuration file
*/
$di->set('db', function () use ($config) {
return new DbAdapter(array(
'host' => $config->database->host,
'username' => $config->database->username,
'password' => $config->database->password,
'dbname' => $config->database->dbname,
'options' => array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'
)
));
});
Или как на скриншоте.
После этого русские буквы успешно отображаются в браузере.
2 комментария: Проблема русских символов в phalcon php. Кодировка utf-8