и снова про PDO

Знаю знаю, тема баян и все такое, но ниче не могу понять.

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". Подскажите, где косячю?

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

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

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

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

Я тоже истратил несколько дней на правильное конфигурирование 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