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

Новые заметки:

Про что мы забываем когда делаем оценку задачи по времени

Список вопросов для собеседования разработчика по телефону

Symfony2 авторизация без Doctrine2 для чайника

Phpstorm7 LiveEdit

Жесткий хабр или не хабр, тогда кто?

Яндекс.Деньги мошенничество

Как узнать какие страницы в поиске яндекса или это секрет

Последние комменты:

Yapro CMS:

Здравствуйте, Гость | Войти | Регистрация | Карта сайта | RSS ленты | Ошибка в тексте? Выделите её мышкой и нажмите: Ctrl + Enter

youtube.com/watch?v=7hFivbgIEqk

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

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