Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PHP для продвинутых.docx
Скачиваний:
16
Добавлен:
01.07.2025
Размер:
12.54 Mб
Скачать
  1. Установка yii

Скачиваем YII по следующей ссылке: http://www.yiiframework.com/download/

После установки Yii откроем окно браузера и перейдем по адресу http://www.example.com/yii/requirements/index.php. Мы увидим анализатор требований, поставляемый вместе с релизом Yii. Для блога кроме того, что требуется самому фреймворку для доступа к БД SQLite нам понадобятся расширения PHP pdo и pdo_sqlite.

Далее открываем консоль и, перейдя с помощью команды cd в папку framework, выполняем следующую команду:

php -f yiic webapp полный/путь/к/папке

Установка YII. Листинг 1.1

% /wwwroot/yii/framework/yiic webapp /localhost/yii

Create a Web application under '/localhost/yii'? [Yes|No]y

Входной скрипт

Раcсмотрим входной файл фрэймворка. Это файл index.php

Index.php. Листинг 1.2

<?php

// change the following paths if necessary

$yii=dirname(__FILE__).'/framework/yii.php';

$config=dirname(__FILE__).'/protected/config/main.php';

// remove the following lines when in production mode

defined('YII_DEBUG') or define('YII_DEBUG',true);

// specify how many levels of call stack should be shown in each log message

defined('YII_TRACE_LEVEL') or define('YII_TRACE_LEVEL',3);

require_once($yii);

Yii::createWebApplication($config)->run();

Основные классы фрэймворка подключаются через переменную $yii. Переменная $config – это файл настроек.

2. Структура yii

Assets – папка для временных файлов, необходимых самому фрэймфорку,

CSS – папка для стилей,

Framework – непосредственно, сам фрэймворк,

Images – папка для изображений,

Protected – рабочая дирректория,

Themes – темы оформления.

Основная папка, с которой нам придется работать, - это папка Protected. Рассмотрим структуру этой папки.

Commands – папка для консольных приложений, для управления фрэймворком с помощью консоли.

Components – содержит компоненты.

Config – содержит конфигурационные файлы.

Controllers – папка для хранения контроллеров.

Data – папка для хранения данных базы данных SQLite

Extentions – папка для расширений фрэймворка.

Messages – папка для хранения системных сообщений. В том числе необходима для хранения ассоциаций переводов в мультиязычных приложениях.

Migrations – папка для отслеживания изменений в базе данных.

Models – папка моделей.

Runtime – папка для хранения временных файлов.

Tests – используется для тестирования приложений.

Vendor – папка для подключения модулей сторонних фрэйворков.

Views – шаблоны проетка.

3. Конфигурирование yii, файл config/main.Php

Подключение к базе данных, включение русского языка, как и определение других конфигурационных переменных, осуществляется в файле config/main.php.

Для подключения русского языка добавим ассоциативный массив language с соответствующим именем.

Подключение русского файла переводов в файле config/main.php. Листинг 3.1

'language'=>'ru',

Меняем кодировку всего приложения. Для этого в файле .htaccess пропишем следующее:

Изменение кодировки для всего проекта, файл .htaccess. Листинг 3.2

addDefaultCharset utf-8

Сейчас системные сообщения будут выводиться на русском языке.

Далее нам необходимо раскомментировать генератор кода gii

Раскомментированный генератор кода, gii. Листинг 3.3

'gii'=>array(

'class'=>'system.gii.GiiModule',

'password'=>'123',

'ipFilters'=>array('127.0.0.1','::1'),

),

Для настройки маршрутов должен быть раскомментирован UrlManager

Раскомментированный urlManager. Листинг 3.4

'urlManager'=>array(

'urlFormat'=>'path',

'rules'=>array(

'<controller:\w+>/<id:\d+>'=>'<controller>/view',

'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',

'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',

),

),

И, наконец, в массиве params, изменим значение элемента adminEmail.

Подключение базы данных

Подключение базы данных. Листинг 3.5

'db'=>array(

'connectionString' => 'mysql:host=localhost;dbname=test',

'emulatePrepare' => true,

'username' => 'root',

'password' => '',

'charset' => 'utf8',

),

Создание пароля для генератора кода GII

Пароль для GII. Листинг 3.6

'gii'=>array(

'class'=>'system.gii.GiiModule',

'password'=>'SECRET',

'ipFilters'=>array('127.0.0.1','::1'),

),

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]