Yii начало

Дорогие читатели, здесь я расскажу Вам, как знакомлюсь с фрэймворком 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/article/13viewtopic.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


18.05.2012 08:11

Комментарии

Просто нужно иметь прямые руки и холодный рассудок, а сам фрэймворк является лидером среди других, так как прост в освоении на 1500% и гибок. Учитесь читать офф. доки и читайте учебник php, раз вы такой лол!
Zver |
1. не понял, по какому поводу наезд про прямые руки и лол, я что-то неправильно написал? 2. конечно фрэймворк является лидером, никто не спорит, разве тут наезд на yii? 3. как раз доки и читал, половина статьи именно оттуда, может Вы невнимательно прочли статью? вообще не понятно, почему такой наезд, можете подробно обосновать?
Admin |
Спасибо большое за 'ipFilters=>array()', долго мучился с gii и ваш совет помог!)
Слава |
К стате, в звщиту автора топика. Мне ваш топик тоже помог, 'ipFilters'=>array(), А наезд - это как раз и есть лол, видно как он читал учебники, через строчки, как и топик прочитал.
Atdevue |
Еще gii не логинится, если в браузере отключены cookies.
Maxgen |
Если после перехода на страницу тестового приложения на фреймворке Yii браузер пишет следующее : "You don't have permission to access _путь к файлу_", можно попробовать сделать следующее... 1)Удалить ранее установленный Фреймворк с хостинга; 2)Разархивировать папку Framework в один уровень с директорией http (или htdocs) в папку (к примеру) yii; 3)Создать в директории http(htdocs) папку testdrive; 4)Зайти в консоль (желательно SSH-клиент), через которую можно получить доступ к хостингу; 5)Прописать в консоли команду ls, после чего пройти в директорию, которая расположена на один уровень выше директории http (htdocs. Там должна находится папка yii); 6)Прописать команду в консоли cd php yii/yiic.php webapp ../http( или htdocs)/testdrive. Прописать yes и нажать Enter; 7)Зайти в браузер и ввести имя_ресурса/testdrive/index.php
Алексей |
Хочу исправить ошибку в пункте 6 - НУЖНО прописать команду в консоли php yii/yiic.php webapp ../http( или htdocs)/testdrive! Теперь все.
Алексей |

Copyrights © 2007 - 2026 YaPro.Ru