Yii начало

Автор: Aport Суббота, Январь 31st, 2015 Нет комментариев

Рубрика: Язык PHP

Дорогие читатели, здесь я расскажу Вам, как знакомлюсь с фрэймворком Yii. А делаю это потому, что все не так уж просто, как написано в руководстве пользователя.

На всякий случай, вот русский вариант — http://www.yiiframework.com/doc/guide/1.1/ru/index

Сначала я скачал Yii и положил корень сайта, директорию yii я сразу переименовал в YiiRoot, т.к. в руководстве все примеры именно с таким названием, мне показалось так действительно будет проще. Первым делом на странице /YiiRoot/requirements/index.php я посмотрел таблицу требований и их соответствия хостинга. Ну, вроде красных (failed) замечаний нет и я решил, поехали.

1.пытался установить testdrive — это типа тест сайт в директории testdrive, в документации сказано сделать так:

cd WebRoot

php YiiRoot/framework/yiic.php webapp testdrive

нихрена не вышло, почему:

  • YiiRoot — это полный путь к Yii, он у меня был конечно своим /usr/home/yii.yapro.ru
  • в корне сайта php-файлам запрещено создавать директории (это весьма правильно), поэтому testdrive не создавался, пришлось создать самому.

2. не могу авторизоваться в /testdrive/index.php?r=gii получал ошибку:

Error 403
You are not allowed to access this page.

воспользовался советом со страницы http://yiiframework.ru/forum/viewtopic.php?f=3&t=902 и в файле /testdrive/protected/config/main.php сделал так:

‘ipFilters’=>array(),

3. авторизовался и меня перекинуло на /testdrive/index.php?r=gii/default/index в списке выбрал

Model Generator

меня перекинуло на страницу /testdrive/index.php?r=gii/model где я получил ошибку:

PHP warning

include(PDO.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory

почитал, оказывается PDO дополнительная PHP-библиотека, прав доступа на установку библиотек у меня нет.

Решил скачать PDO.php отдельно. Зашел на страницу http://www.phpclasses.org/package/2572-PHP-PDO-database-abstraction-interface-for-PHP-4.html и скачал:

PDO.class.php — переименовал в PDO.php

PDO_sqlite.class.php

PDOStatement_sqlite.class.php

и положил все файлы в папку /YiiRoot/framework/

Снова зашел на страницу /testdrive/index.php?r=gii/model и увидел пустую страницу. Удалил залитые файлы.

Еще погуглил и нашел такое расширение http://www.yiiframework.com/extension/phppdo/ обсуждение тут http://dbhelp.ru/install-yii-phppdo/page/

Скачал, залил PHPPDO в папку /testdrive/protected/extensions а в файле /testdrive/protected/config/main.php заменил это:

        ‘db’=>array(
‘connectionString’ => ‘sqlite:’.dirname(__FILE__).’/../data/testdrive.db’,
),

на это:

        ‘db’=>array(
‘class’=>’application.extensions.PHPPDO.CPdoDbConnection’,
‘pdoClass’=>’PHPPDO’,
),

Снова зашел на страницу /testdrive/index.php?r=gii/model и увидел:

CDbException

CDbConnection.connectionString cannot be empty.

Получается PHPPDO не хочет работать с sqlite.

Ладно, захожу в MySQL, создаю базу данных lebnik_yii и выполняю в ней запросы, которые прописаны в файле /testdrive/protected/data/schema.mysql.sql

Теперь в файле /testdrive/protected/config/main.php меняю это:

        ‘db’=>array(
‘class’=>’application.extensions.PHPPDO.CPdoDbConnection’,
‘pdoClass’=>’PHPPDO’,
),

на это:

        ‘db’=>array(
‘class’=>’application.extensions.PHPPDO.CPdoDbConnection’,
‘pdoClass’=>’PHPPDO’,
‘connectionString’ => ‘mysql:host=localhost;dbname=lebnik_yii’,
‘username’ => ‘Имя пользователя для подключения к базе данных lebnik_yii’,
‘password’ => ‘Пароль подключения к базе данных lebnik_yii’,
‘emulatePrepare’=>true,  // needed by some MySQL installations
),

Снова захожу на страницу /testdrive/index.php?r=gii/model и вижу все, как написано на странице http://www.yiiframework.com/doc/guide/1.1/ru/quickstart.first-app#sec-5

Дальше можно посмотреть видео на сайте http://www.remchi.ru/

p.s. Логи ошибок можно посмотреть в файле /testdrive/protected/runtime/application.log

 

Источник: yapro.ru

Оставить комментарий

Чтобы оставлять комментарии Вы должны быть авторизованы.

Похожие посты