Yii Framework Forum: и снова про PDO - Yii Framework Forum

Jump to content

Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

и снова про PDO прямо надоело это уже Rate Topic: -----

#1 User is offline   imdogma 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 56
  • Joined: 04-July 09
  • Location:Ivanovo

Posted 13 January 2010 - 07:24 PM

Знаю знаю, тема баян и все такое, но ниче не могу понять.
Yii 1.1.0, стоит EasyPHP, в конфе пыхи включены php_pdo_mysql и php_mysql.
'db'=>array(
	'connectionString' => 'mysql:host=localhost;dbname=mydb',
	'emulatePrepare' => true,
	'username' => 'root',
	'password' => '',
	'charset' => 'utf8',
),

пытаюсь из консоли создать модель - получаю "Class PDO not found". Подскажите, где косячю?
0

#2 User is offline   Zolter 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 377
  • Joined: 26-March 09

Posted 14 January 2010 - 01:57 AM

А попробуйте руками создать модель и посмотреть будет работать или будет ругаться на отсутствие PDO
1

#3 User is offline   andy_s 

  • Random Member Title
  • Yii
  • Group: Moderators
  • Posts: 1,526
  • Joined: 22-June 09
  • Location:Russia, Kostroma

Posted 14 January 2010 - 02:08 AM

Нужно обратить внимание на следующие замечания в туториале и гайде:

Quote

Информация: Некоторые установленные копии PHP могут использовать другой файл php.ini для PHP анализатора командной строки (CLI). В результате выполнения команд выше, Вы можете столкнуться с такими ошибками как «YiiBase::include(PDO.php): failed to open stream…» или «…could not find driver». Дважды проверьте свою конфигурацию PHP CLI, выполнив следующую команду:
php -r "phpinfo();"

Результат команды покажет, какой файл php.ini используется и какие расширения загружены. Если используется неправильный файл php.ini, можно использовать следующую команду, чтобы явно задать нужный файл php.ini:
php -c php.ini /wwwroot/yii/framework/yiic.php shell /wwwroot/blog/index.php


Quote

Примечание: Даже, если проверка соответствия требованиям показывает, что расширение PDO и драйвер PDO, соответствующий используемой базе данных, включены, могут возникать ошибки типа «…could not find driver». В этом случае необходимо запустить утилиту yiic следующим образом:
% php -c path/to/php.ini protected/yiic.php shell

где path/to/php.ini — путь до файла PHP ini

3

#4 User is offline   imdogma 

  • Junior Member
  • Pip
  • Yii
  • Group: Members
  • Posts: 56
  • Joined: 04-July 09
  • Location:Ivanovo

Posted 14 January 2010 - 11:09 AM

Все так, проблема была с php.ini. Вобщем, поставил xampp и не парюсь :)
0

#5 User is offline   Zolter 

  • Advanced Member
  • PipPipPip
  • Yii
  • Group: Members
  • Posts: 377
  • Joined: 26-March 09

Posted 14 January 2010 - 11:25 AM

А до этого денвер был или сами поднимали пхп+апач?
0

#6 User is offline   seniorandre 

  • Newbie
  • Yii
  • Group: Members
  • Posts: 3
  • Joined: 15-February 10

Posted 15 February 2010 - 05:56 AM

Я тоже истратил несколько дней на правильное конфигурирование YII 1.1 под нескольким наборами разработчика... XAMPP, Денвер, EasyPHP.
1. Разработчики Yii в новой версии забыли где-то вызов модуля PDO.php убрать из рабочей версии. Теперь если у Вас не установлен PEAR.PHPUnit, то будет эта ошибка.

XAMPP - все заработало сразу, PEAR.PHPUnit идёт в комплекте.

Денвер - библиотека PEAR ставится ввиде дополнительной библиотеки расширений для Денвера. Её надо скачать с сайта разработчика отдельно и при установке согласиться с инсталяцией PEAR.

EasyPPH (5.2.10) - проблем было больше всего, но это набор, который мне нравится больше всего своей утилитой управления, поэтому и его я доделал.

Еще надо поставить в PHP.INI
- output_buffering=4096 (EasyPHP, Денвер)
- включить необходимые PDO для доступа к данным (я включал php_pdo_pqsql.dll, php_pdo.dll) (EasyPHP, Денвер, XAMPP)
- правильно указать в includes путь к библиотеке PEAR. Лучше руками полный путь. (include_path = ".;C:\EasyPHP\php\includes;C:\EasyPHP\php\PEAR\") (EasyPHP)
- Добавить в переменной среды PATH путь к php.exe. (C:\EasyPHP\php) (EasyPHP, Денвер, XAMPP)

Для EasyPHP:
- Не включались драйвера для Postgres, решилось только полной заменой всех драйверов php, от XAMPP or Денвер :)
- Потом пошли другие ошибки (не помню какие) и пришлось заменим весь каталог PHP сборкой от XAMPP с правкой путей в конфигах :)
- EasyPHP хранит рабочий файл php.ini в каталоге Apache, поэтому все утилиты консольных приложений YII выдают ошибку PDO.hp не найдена. Но есть другой плюс... В EasyPHP получаются разные конфиг файлы для консольных приложений (/php) и для работы через Apache (/Apache). В общем готовый php.ini положите в каталог php и будет счастье для консольных приложений, модели будут генериться.

В EasyPHP очень удобная утилита, которая в трее. Когда через неё вызываешь php.ini, то перезапуск конфигурации происходит автоматом после нажатия сохранить для файла php.ini, это же выполняется для Apache. Из этой же консоли вызываются лог файлы Apache. И многое другое.
P.S. Можно PHPUnit поставить вручную, как написано на сайте http://www.phpunit.de/
1. Развернуть PEAR
>go-pear.bat
2. Обновить PEAR as:
>PEAR upgrade-all
3. Установить PEAR ext PHPUNIT
>pear channel-discover pear.phpunit.de
>pear install --alldeps phpunit/PHPUnit
>pear install phpunit/PHPUnit
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users