назад к разделу "Yii framework"

Yii framework установка

раздел: Yii framework
последнее изменение: 2014-12-21
автор: Юрий Матвеев
Yii framework установка

Итак, скачаем установочный дистрибутив с официального сайта: Yii-framework. На данный момент, стабильной версией является v.1.1.15. Распаковываем архив, и нас интересует из него только папка framework (в папке demos находятся примеры проектов, в папке requirements - тест проверки на соответствие требованиям к Yii framework установке). Ложим распакованную папку framework в корень нашего сайта.
Дальнейшая Yii framework установка проекта из папки framework несколько необычна: - необходимо выполнить bat-файл yiic.bat. Делается это следующим образом:
(Я свое первое приложение создавал на Denver) Заходим в командную строку компьютера и выполняем директиву по форме:
«путь к php Денвера» «путь к yiic.php» webapp «конечная папка, где будет создан наш проект»
В моем случае, проект создавался в папке catalog в корне home, и директива была следующей:

Z:/usr/local/php5/php.exe z:/home/catalog/www/framework/yiic webapp z:/home/catalog/www/
Жмем enter, и.... последовательно вылазит куча сообщений об отсутствующих у меня на Денвере .dll:
  • /usr/local/php5/extphp_curl.dll
  • php_gd2.dll
  • php_mbstring.dll
  • php_mysql.dll
  • php_mysqli.dll
  • php_pdo_mysql.dll
  • php_pdo_sqlite.dll
  • php_soap.dll
  • php_sqlite3.dll
  • php_xsl.dll
Как оказалось, ничего страшного в этом нет, все их подтверждаем.
Далее мне задали вопрос, действительно ли я хочу создать новый проект, я ответил yes. И всё, проект создан. Открыть его можно по ссылке:
http://catalog
Сам проект размещен в папке protected. В ней бросаются в глаза три папки:
  • models
  • views
  • controllers
, говорящие о принадлежности проекта к MVC-паттерну

Далее хотелось бы привести простенький пример создания стариц для вывода и управления таблицами в базе данных с помощью автоматического генератора кода Gii. Сам генератор будет доступен по ссылке
http://catalog/index.php?r=gii/default/index
(видно. что в конце мы добавили Get-хвост с указанием на Gii.
Но, для его работы нужно раскомментировать директиву в файле настроек:
protected/config/main.php

	"modules"=>array(
		// uncomment the following to enable the Gii tool
		"staticpage",
		"gii"=>array(
					"class"=>"system.gii.GiiModule",
			"password"=>"123456",//здесь задаем пароль
			// If removed, Gii defaults to localhost only. Edit carefully to taste.
			"ipFilters"=>array("127.0.0.1","::1"),
		),
		
	),
Для примера работы с Gii создадим пару любых таблиц в базе данных. Пусть это будут tbl_assortiment и tbl_category. Приставка tbl_ нужна, если вдруг в Вашей базе данных будут ещё какие-то таблицы, не относящиеся к проекту Yii-framework. Можно её не ставить, или поставить любую другую.

Запускаем Gii, вводим заданный нами пароль, и выбираем Model generator. Заполняем поля следующими данными:

  • Database Connection *
    Db
  • Table Prefix
    tbl_
  • Table Name
    *
  • Base Class
    CActiveRecord
  • Model Path *
    application.models
Нажав кнопку Preview, отобразятся пути к создаваемым файлам моделей. Которые можно просмотреть и снять-установить галочки при необходимости. Примерно такая картинка: Yii framework установка 1 Теперь создадим формы для создания-чтения-редактирования-удаления (CRUD create-read-update-delete) элементов наших таблиц. Жмем CRUD Generator и заполняем форму:
Например, для таблицы tbl_assortiment (и модели Assortiment):
  • Model Class * application.models.Assortiment
  • Controller ID * assortiment
  • Base Controller Class * Controller
Получается такая картинка:
Yii framework установка 2 К слову сказать, перед созданием CRUD-форм, нам нужно бы было прежде создать контроллеры для наших моделей, но Yii-framework понял эту ошибку, и сам создал их (первая строка на картинке), что очень благородно с его стороны ).
Теперь админ-пенели CRUD-форм доступны по ссылкам:
http://catalog/index.php?r=category/admin
http://catalog/index.php?r=assortiment/admin
И мы уже можем заносить информацию в наши таблицы.
И последний штрих - для корректного отображения кирилицы в кодировке UTF-8 (и выполнения других типовых функций вроде перенаправления на index.php и склейки www.) в корень папки protected нужно поместить файл .htaccess с примерно таким кодом:
AddDefaultCharset utf-8

Options +FollowSymLinks 
IndexIgnore */* 
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d

# forward to index.php 
RewriteRule ^(.*)$ index.php [L,QSA]

# upload files parameters
php_value post_max_size 10M
php_value upload_max_filesize 10M
php_value max_execution_time 200
php_value max_input_time 200

# delete www.
   RewriteCond %{HTTP_HOST} ^www.(.+)$ [NC]
   RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
   RewriteBase /

Вы можете оставить комментарий или отзыв об этой статье
  • X
    28
    Ваше имя:
    Комментарий:
    loader