ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Начальный практикум в Yii
  #1  
Старый 10.07.2009, 09:55
Kuzya
Участник форума
Регистрация: 27.04.2008
Сообщений: 224
Провел на форуме:
140661

Репутация: 313
По умолчанию Начальный практикум в Yii

Официальный сайт фреймворка: http://yiiframework.com/
Русскоязычный форум: http://www.yiiframework.com/forum/index.php/board,19.0.html
Версия фреймворка на момент написания статьи: 1.0.6

Автор: Кузьмин Антон (Kuzya)
Сайт: http://kuzya.name

К сожалению редактор форума не позволяет создавать структурированный текст, из-за чего большие части кода порой трудно читаются.
В этом случае рекомендую Вам скачать PDF-вариант статьи: practical_intro_yii.pdf (17 страниц, шрифт Times New Roman, 12pt).


Прикреплённые файлы: design.zip, ready.zip, database.zip


Введение
Здравствуйте. В этой статье мы будем практиковаться в изготовлении простейшего приложения с помощью фреймворка Yii. Нашей целью будет создание
сайта на котором люди могут вести свои блоги и комментировать чужие.
Скажу сразу что я являюсь ярым противником различных классов и хэлперов для работы с HTML. Поэтому, в отличие от демонстрационных приложений
производителей, я не использую классы типа CHtml. Хотя возможно кто-то сочтёт это неправильным. Вообщем, все шаблоны в этой статье содержат
только HTML и альтернативный PHP-синтаксис.
Начните с создания "чистого" хоста для нашего сайта. Я назвал его "yii".В корневой директории создайте папку base. Скопируйте туда содержимое
архива фреймворка (директории framework, requirements и т.д.). После этого, так же в корне, создайте новое приложение с помощью утилиты "yiic"
и её команды webapp ( http://www.yiiframework.com/doc/guide/ru/quickstart.first-app ).

Дизайн
Возьмите архив с дизайном (приложен к статье). В нём есть директории fonts, images и файл style.css. Скопируйте их в корень сайта. Теперь пройдите
в директорию /protected/views/layouts и откройте файл main.php. Здесь содержится глобальный внешний вид для всех без исключения страниц. Сначала
просто скопируйте в этот шаблон HTML-содержимое нашего дизайна ( из архивного index.html ). После этого, при обращении к корню хоста, Вы должны
увидеть совершенно другую картину.

Главная переменная в layout`e это $content. Туда помещается содержимое текущей страницы. Давайте затрём приветствие

Код HTML:
<h2>Здравствуйте уважаемый гость!</h2>
<p>
Почему мы призываем вас завести блог именно у нас?
Блог - это то место, где можно делиться мыслями, публиковать статьи, фотографии, общаться с друзьями или просто рассказывать о своей жизни. Создай 
личный дневник только для друзей или заведи блог на тему, которая тебя интересует.
На нашем сайте Вы найдёте новых друзей, сможете бесконечно общаться с ними.
</p>
и за место него вставим отображение этой переменной

PHP код:
<?=$content?>
У нас в приложении главным контроллером является Site. В нём есть действие indexAction, которое отображает соответствующий шаблон. Откроем его
( /protected/views/site/index.php ) и за место содержимого поместим ранее вырезанную часть layout`a. Обновите страницу. Внешне никаких изменений
произойти недолжно.

Локализация
Локализацией ( http://www.yiiframework.com/doc/guide/ru/topics.i18n ) мы займёмся именно сейчас. Почему, Вы поймёте по ходу чтения этого раздела.
Для начала настроим исходный язык приложения (sourceLanguage) и пользовательский (просто language). Для этого откройте файл конфигураций
/protected/config/main.php и после параметров "basePath" и "name" добавьте соответствующие ячейки:

PHP код:
'sourceLanguage' => 'en_US',
'language' => 'ru_RU'
Так мы указываем приложению что в качестве исходного языка используется английский, а требуется русский. Обратите внимание на то что если эти
языки будут совпадать то никакой перевод задействован не будет.
Непосредственно преобразование английских фраз в русские мы будем осуществлять с помощью метода t, класса Yii, которому нужно передать категорию
фразы, и саму фразу ( http://www.yiiframework.com/doc/api/YiiBase#t-detail ). Метод покопается в языковых файлах и вернёт текст перевода. Сами
фразы мы будем хранить в виде массива, в php-файлах ( хотя возможны варианты, например хранение фраз в БД). Пройдите в директорию /protected/messages/
и создайте там папку ru_RU. В ней должны находиться файлы категорий с русскоязычными текстами. Мы будем пользоваться всего одной категорией ( естественно
в настоящем приложении их несколько ) - common. Создайте для неё файл common.php со следующим содержимым:

PHP код:
 return Array(

); 
Поместим в него фразы из нашего приветствия с главной страницы. Отдельно фразу "Здравствуйте уважаемый гость!" и текст приветствия.

PHP код:
<?php
return Array(
"hello_guest" => "Здравствуйте уважаемый гость!",
"welcome" => "Почему мы призываем вас завести блог именно у нас? Блог - это то место, где можно делиться мыслями, публиковать статьи, фотографии,
 общаться с друзьями или просто рассказывать о своей жизни. Создай личный дневник только для друзей или заведи блог на тему, которая тебя интересует.
 На нашем сайте Вы найдёте новых друзей, сможете бесконечно общаться с ними. "
);
Теперь снова обратимся к отображению действия indexAction, и фразу приветствия заменим на

PHP код:
<?=Yii::t("common","hello_guest")?>
а текст приветствия на

PHP код:
<?=Yii::t("common","welcome")?>
Если Вы всё сделали правильно, то после этих манипуляций главная страница опять должна остаться без изменений.
Такую работу мы будем проводить со всеми англоязычными фразами. Во избежание лишней траты времени я не стал локализировать надписи в формах, меню
и т.д. Пусть сразу будут русскими.

.htaccess

Сейчас мы сделаем так чтоб URL у нас были не такие "index.php?r=path/path", а такие - "/path/path". Для этого откройте конфигурационный файл и в
ячейку components добавьте

PHP код:
'urlManager'=>array(
'urlFormat'=>'path',
), 
А в корень сайта положите файл .htaccess с содержимым

Код:
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php
Более подробную информацию по изменению URL Вы можете найти здесь - http://www.yiiframework.com/doc/guide/ru/topics.url

База данных
Займёмся базой данных. Её SQL-код лежит в архиве database.zip. Создайте базу yii и выполните этот код в ней. Теперь следует указать фреймворку
с какой базой ему нужно работать и как с ней соединяться. Снова обратимся к файлу /protected/config/main.php и раскомментируем в нём строки

PHP код:
/*
'db'=>array(
'connectionString'=>'Your DSN',
),
*/ 
Далее, за место "Your DSN" вставим строку соединения с БД. У меня это "mysql:host=localhost;dbname=yii". Добавим в этот массив ещё несколько строк:

PHP код:
'class' => 'CDbConnection'// Выбираем класс для работы с БД
'username' => 'root'// Имя пользователя
'password' => ''// Пароль
'charset' => 'utf8' // Кодировка 
Измените их значения под свой сервер.

Последний раз редактировалось Kuzya; 10.07.2009 в 10:34..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Начальный практикум в Kohana Kuzya Статьи 7 31.05.2009 22:22
Начальный практикум в CakePHP Kuzya Авторские статьи 7 20.03.2009 11:13
Начальный практикум в Code Igniter Kuzya Авторские статьи 9 20.02.2009 23:12



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ