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/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

Оцени публикацию:
  • 12,52
Оценили человек: 12
Теги : framework, yii, фрэймворк

Похожие статьи:

Справочники и учебники:


Комментарии посетителей:
  • Просто нужно иметь прямые руки и холодный рассудок, а сам фрэймворк является лидером среди других, так как прост в освоении на 1500% и гибок. Учитесь читать офф. доки и читайте учебник php, раз вы такой лол!
    08 августа 2012, 14:54 коммент полезен : -4 # Zver
    • 1. не понял, по какому поводу наезд про прямые руки и лол, я что-то неправильно написал?
      2. конечно фрэймворк является лидером, никто не спорит, разве тут наезд на yii?
      3. как раз доки и читал, половина статьи именно оттуда, может Вы невнимательно прочли статью?
      вообще не понятно, почему такой наезд, можете подробно обосновать?
      09 августа 2012, 06:12 коммент полезен : 0 # Admin
  • Спасибо большое за 'ipFilters=>array()', долго мучился с gii и ваш совет помог!)
    23 августа 2012, 22:34 коммент полезен : +1 # Слава (гость)
  • К стате, в звщиту автора топика.
    Мне ваш топик тоже помог, 'ipFilters'=>array(),
    А наезд - это как раз и есть лол, видно как он читал учебники, через строчки, как и топик прочитал.
    22 ноября 2012, 03:18 коммент полезен : 0 # Atdevue
  • Еще gii не логинится, если в браузере отключены cookies.
    12 декабря 2012, 22:56 коммент полезен : +1 # 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  
    23 января 2014, 15:37 коммент полезен : 0 # Алексей2
  • Хочу исправить ошибку в пункте 6 - НУЖНО прописать команду в консоли php yii/yiic.php webapp ../http( или htdocs)/testdrive! Теперь все.
    23 января 2014, 15:38 коммент полезен : 0 # Алексей (гость)
Предложения и пожелания:
Ваше имя:
Ваш E-mail:
Сколько будет Οдин + Τри
Главная
X

youtube.com/watch?v=7hFivbgIEqk

При полном или частичном использовании материалов данного сайта, ссылка на сайт "yapro.ru" обязательна как на источник информации.
Автоматический импорт материалов и информации с сайта запрещен.
Copyrights © 2007 - 2017 YaPro.Ru

Главная » Веб-мастеру » PHP »