<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Как использовать файлы TPL

Как использовать файлы TPL

Относительно недавно я писал о том, как создать свой движок для сайта. И там я сказал, что для HTML-кода надо создавать специальные файлы-шаблоны, которые имеют расширение tpl. Однако, один из моих посетителей попросил меня поподробнее рассказать о том, как использовать файлы tpl. И в этой статье я постараюсь подробно рассказать о том, зачем нужны файлы tpl, как их использовать, и приведу небольшой пример.

Файлы tpl используются для написания в них HTML-кода, который впоследствии будет "вытащен" PHP и выведен пользователю на конкретных страницах. Например, в файле tpl может быть форма регистрации. То есть просто HTML-код обычной формы, ничего больше. В другом файле tpl может быть блок с панелью пользователя. В этой панели идёт "Приветствие пользователя" по имени, различные ссылки на редактирование профиля, а также кнопка выхода. Это всё примеры, где регулярно используются файлы tpl.

Однако, есть один очень важный нюанс. Рассмотрим поподробнее файл tpl с панелью пользователя. Я написал, что там идёт приветствие пользователя по имени. Но файл один, а пользователей очень много (следовательно, и имён много). Глупо создавать для каждого пользователя отдельный файл, где жёстко прописано его имя. Поэтому в файлах tpl используются специальные элементы - шаблонизаторы. Они записываются примерно в таком виде: {username}. Давайте приведу пример файла tpl, где используется шаблонизатор {username} (пусть файл называется user_panel.tpl):

<div>
  <p>Здравствуйте, <b>{username}</b>!</p>
  <p><a href = 'editprofile.php'>Редактировать профиль</a></p>
  <p><a href = 'editprofile.php'>Выход</a></p>
</div>

Как видите, никаких <html>, <head> и <body> здесь нет. Только тот HTML-код, который отвечает за панель пользователя.

Теперь напишем PHP-код, который этот tpl-файл обрабатывает:

<?php
  $username = "Пётр"; //Разумеется, это имя Вы должны сначала откуда-то взять, например, из базы данных
  $user_panel = file_get_contents("user_panel.tpl");
  $user_panel = str_replace("{username}", $username, $user_panel);
  echo $user_panel;
?>

Как видите, всё очень и очень легко. Мы здесь получили содержимое файла user_panel.tpl, а затем с помощью функции PHP str_replace() заменили {username} на конкретное имя пользователя.

Это основа, которую необходимо знать для использования tpl-файлов. Далее Вы должны теперь понять, что страница будет собираться по кирпичикам, выводя все tpl-файлы в нужном порядке. Главное преимущество такого подхода, что разделяется программная часть и дизайнерская, благодаря чему становится крайне легко изменять дизайн и код PHP независимо друг от друга.

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (21):

pavelaleks pavelaleks 09.07.2011 09:33:31

Михаил, я конечно, ещё не настолько овладел знаниями в области программирования, изучая платный курс(за который тебе отдельное спасибо), но сдается мне, что в написанном коде есть пара, скорее всего, опечаток.. :)

Ответить

Trust Trust 08.11.2011 21:48:56

Михаил ! вопрос таков... просто не знал где его задать решил тут раз уж применяю tplы... вот к примеру у меня есть переменная имени "$login" и на экране выводится именно к примеру "Олег" А как вот его просклонять правильно ведь не ко всем именам подойжет префикс после его логина к примеру Сообщение от "Олег" - не очень смотрится=((( Как это реализовать?

Ответить

Admin Admin 08.11.2011 22:15:07

Это сделать можно только для конечного числа имён. Реализовать это для всех имён не получится. Соответственно, Вы для каждого имени склоняете под всеми необходимыми падежами, а потом вытаскиваете нужный падеж (например, взятый из параметра функции).

Ответить

asistex asistex 27.06.2015 00:18:10

Нет там опечаток, кроме той что тег <b> не работает с версии 4,1 HTML

Ответить

pavelaleks pavelaleks 27.06.2015 07:00:20

Ты это мне написал? Ты видел дату моего поста??

Ответить

ArturPanteleev ArturPanteleev 07.03.2012 20:42:08

Спасибо за статью, помню я как раз и не разобрался с шаблонизаторами и фигурными скобками.

Ответить

fatalstrike fatalstrike 25.04.2012 14:10:09

Здравствуйте, Михаил. Есть вопрос. Например есть tpl файл для боковой панели. В боковой панели есть подобие виджетов. Они одинаково выглядят и для них я так же сделал один tpl файл. Вот tpl виджета: <div class=widget> <h3>{title}</h3> {text} {bottomtext} </div> Как мне с помощью одного tpl для виджета выводить например 3 виджета?

Ответить

Admin Admin 25.04.2012 14:13:27

Через цикл.

Ответить

fatalstrike fatalstrike 25.04.2012 14:19:13

Так если я буду в цикле с помощью str_replace() изменять значения {title} {text} и т.д. то они будут меняться для всех виджетов...

Ответить

Admin Admin 25.04.2012 19:50:06

for(...) $text .= str_replace(...); И вот в $text и будут все 3 виджета.

Ответить

vsenetak vsenetak 18.05.2012 16:20:52

Скажите, пожалуйста, а как связан tpl с версткой? Вот мы создали такой блок: <div> <p>Здравствуйте, <b>{username}</b>!</p> <p><a href = 'editprofile.php'>Редактировать профиль</a<</p> <p><a href = 'editprofile.php'>Выход</a></p> </div> а в каком файле настраивается его вид?

Ответить

Admin Admin 18.05.2012 16:23:34

Сначала делается вёрстка, а уже потом эта вёрстка разбивается на куски и отправляется в tpl-файлы.

Ответить

vsenetak vsenetak 18.05.2012 16:33:29

Спасибо! Это я понимаю,но в самом же ptl файле не прописывается графика, содержимое и их свойства, и расположение на странице?

Ответить

Admin Admin 18.05.2012 18:08:40

Туда прописывается HTML-код, а это и есть всё то, что Вы написали.

Ответить

ppk-center ppk-center 28.05.2012 20:20:55

У Вас опечатка в коде - надо не <div> <p>Здравствуйте, <b>{username}</b>!</p> <p><a href = 'editprofile.php'>Редактировать профиль</a<</p> <p><a href = 'editprofile.php'>Выход</a></p> </div>, а <div> <p>Здравствуйте, <b>{username}</b>!</p> <p><a href = 'editprofile.php'>Редактировать профиль</a></p> <p><a href = 'editprofile.php'>Выход</a></p> </div>

Ответить

Admin Admin 28.05.2012 20:29:30

Спасибо, исправил!

Ответить

shelton shelton 20.10.2012 13:05:42

Михаил, можете написать статью, где будет описпно, как создать класс для подключения шаблона(типа template).

Ответить

logaut logaut 08.12.2014 16:34:07

Замечательная статья, Михаил! Не смотря на то, что я не полностью помню базу php, я строчки этого примера разобрал и наизусть запомнил. Именно самого образца - примера, мне не хватало для понимания вывода значений и обработки скобок фигурных. То есть по сути, замены username на конкретное значение - имя. Я думаю, что это всего лишь капля в море, того, что я узнал из этой статьи. С уважением, Сергей.

Ответить

pSECTORq pSECTORq 20.12.2014 09:15:35

Привет Михаил. Конечно, огромное спасибо тебе за твои уроки (бесплатные, на курсы денег нет к сожалению ), вот 3-е сутки практически без сна сижу и пытаюсь понять как использовать ООП. Процедурное программирование конечно хорошо, но в ООП я увидел компактность пользования. Ну так вот, вот код шаблонизатора(--- function articles(){ $mysqli = connectDB(); $result_set = $mysqli->query("SELECT * FROM news"); closeDB($mysqli); return shotStoryArray($result_set); } function shotStoryArray($result_set){ $results = array(); while (($row = $result_set->fetch_assoc()) != false){ $results[] = $row; } return $results; } $result = articles(); for ($i = 0; $i < count($result); $i++){ $file = file_get_contents("templaters/mytemp/index.html"); $file = str_replace('{title}',$result[$i]['title'],$file); $file = str_replace('{desc}',$result[$i]['description'],$file); $file = str_replace('{fulltext}',$result[$i]['fulltext'],$file); $file = str_replace('{author}',$result[$i]['autor'],$file); print ($file); } ---) Шаблонизатор работает как надо, но как его в КЛАСС загнать никак не могу понять. и еще такой вопрос как передать в переменную все файлы шаблона из каталога. что бы не писать для каждого шаблона отдельный код и теги а просто написать строку $file = file_get_contents("templaters/mytemp/index.html"); и там где index.html подставить переменную допустим $filename в которую записаны все файлы шаблона?

Ответить

Riddler120 Riddler120 28.01.2015 17:24:46

Вы используете tpl-файлы просто, чтобы максимально отделить php код от html кода, или есть еще плюсы использования tpl-файлов? Может с ними код быстрей работает? Есть ли разница между использованием php+tpl-файлов и html+вставки php кода?

Ответить

logaut logaut 04.03.2015 17:34:02

Знаете, разница есть. Представьте что Вы делаете блог или новостной портал, Вам без шаблонизатор и tpl не справились. Вот смотрите, к, примеру вы сделали сайт и без шаблонизаторов и tpl файлов, в таком случае Вам понадобится в место элементов шаблона %username% ставить в html код вот такие конструкции: <?php echo "$name"; ?> или такую конструкцию, покороче: <?=$name;?>, а когда Вам захочется поменять шаблон, то тяжело будет сделать - это без шаблонизаторов, к тому же в добавок, чтобы поменять шаблон, Вам и в программный код влезать нужно будет. Что насчёт быстрой загрузки страниц... Тут можно использовать кеширование страниц сайта, или использовать Ajax на полную катушку с javascript.

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.