Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

sukalova / Лабораторная работа1

.pdf
Скачиваний:
5
Добавлен:
23.02.2016
Размер:
100.59 Кб
Скачать

Лабораторна робота № 1

Мета: Придбання навичок роботи з шаблонізатором Twig

План роботи.

1.Призначення Twig

2.Принципи організації роботи з Twig

1.Підключення бібліотечних модулів

2.Налаштування файлів config.php і twig_config.php

3.Підключення файлу-шаблона до файлу на мові php, формування масиву переданих змінних

4.Правило структурування шаблону base.tpl

5.Формування нового шаблону на основі base.tpl, відображення в шаблоні, переданих змінних

6.Індивідуальні завдання.

7.Підключення стилів

1. Призначення Twig

Стандартна схема архітектури MVC «Модель-Вид-Контролер» Model View Controller зображена на Рис. 1 (схема запозичена з книги «Ajax in action» видавничого дому «Вільямс»[1])

Рис.1 Схема архітектури MVC

Розберемо по пунктах дану схему.

У моделі MVC, як випливає з назви, є три основних компоненти: Модель, Представлення, і Контроллер.

Представлення (вид) відповідає за відображення інформації, що надходить із системи або в систему.

Модель є «суттю» системи і відповідає за дані системи, її інформаційну частину (як правило це база даних).

Контролер є сполучною ланкою між «поданням» і «моделлю» системи, за допомогою якого і існує можливість зробити поділ між ними. Контролер отримує дані від користувача і передає їх в «модель». Крім того, він отримує повідомлення від моделі, і передає їх в «уявлення».

Стосовно до інтернет-додаткам здається, що частини контролер і уявлення об'єднані, тому що за відображення і одночасно за введення інформації відповідає браузер. Роз'їдені ці дві частини дозволяє сучасна технологія використання шаблонізатором.

Шаблонізатори дозволяють домогтися відділення прикладної логіки і даних від логіки представлення. Це дуже зручно в ситуаціях, коли програміст і верстальник шаблону - різні люди. Шаблонізатором сприяє виконанню концепції поділу.

Довгий час для розробки сайтів на PHP використовував шаблонізатором Smarty. Досить зручний шаблонізатором, так би мовити дефакто для PHP. Паралельно розвивалися інші шаблонізатором. Розглянемо наступну порівняльну таблицю по швидкодії:

Бібліотека

Час (сек)

Пам`ять (Кб)

Чистый PHP

2.4

114

Twig

3

383

PHPTAL

3.8

598

Dwoo

6.9

1 645

Smarty 2

12.9

610

Smarty 3

14.9

799

Calypso

34.3

614

eZ Templates

53

2 783

Twig шаблонізатором для PHP є одним з найбільш Зручний и швідкодіючіх.

2.Принципи організації роботи з Twig

2.1.Підключення бібліотечних модулів

На сайт Twig (http:// twig-project.org) - вказано, що для роботи необхідний PHP 5.2.4 і вище.

Для підключення шаблонізатором twig необхідно підключити деякі додаткові модулі бібліотеки PEAR ("PHP Extension and Application Repository" (Репозиторій додатків і модулів PHP)). PEAR - це структурована бібліотека відкритого коду, створена для користувачів PHP, яка містить базові класи і бібліотеку додаткових модулів для PHP

На сайті http://pear.php.net/package/PEAR/download необхідно скачати PEAR архів. З усього архіву нам знадобляться тільки 2 файли це PEAR.php і PEAR5.php. Покладемо їх у папку pear, яку створимо в кореневій папці lib сайту:

lib/-

|_ pear

|_ PEAR.php

|_ PEAR5.php

Тепер встановимо Twig, остання на момент публікації (версія 1.10.3) (http://twig.sensiolabs.org/). З архіву нам знадобиться папка Twig, яка знаходиться в папці lib. Її ми копіюємо в папку pear. отримуємо:

lib/-

|_ pear

|_ PEAR.php

|_ PEAR5.php |_ Twig

|_ Extension |_ Filter

|_ ...

Додайте отриману папку lib в корені свого сайту і можна приступати до роботи з шаблонізатором Twig. Зібрана папка lib знаходиться на LAB / Internet / db / lib

2.Принципи організації роботи з Twig

2.2.Настройка файлів config.php і twig_config.php

Першим кроком у побудові будь-якого сайту є створення файлу

config.php, в якому ми можемо налаштувати автоматичне зчитування адреси сайту, що дозволить без змін у налаштуваннях переміщати сайт на новий хостинг. Все визначаються константи інтуїтивно зрозумілі за їх назвами. Для їх визначення використовується ряд стандартних функцій php.

getenv ('SERVER_NAME') повертає ім'я хоста з URL адресу сайту

$ _SERVER ['SUBDOMAIN_DOCUMENT_ROOT'] з масиву змінних оточення зчитуємо повний шлях на сервері до кореневої папки сайту (в залежності від настройки Web сервера $ _SERVER ['DOCUMENT_ROOT'). У разі розміщення сайту у вкладених папках на хостингу, необхідно дописувати шлях до файлів сайту (/ present / lab /)

<?php

define("SITE_URL", 'http://' . getenv('SERVER_NAME') . '/'); define("SITE_TITLE", 'lab Twig');

define("DIR_ROOT", (empty($_SERVER['SUBDOMAIN_DOCUMENT_ROOT']) ? $_SERVER['DOCUMENT_ROOT'] : $_SERVER['SUBDOMAIN_DOCUMENT_ROOT']) . '/present/lab/'); define("DIR_TEMPLATES", DIR_ROOT . 'templates/'); define('DIR_CACHE', DIR_ROOT . 'cache/');

define("DIR_LIB", DIR_ROOT . 'lib/'); ?>

Другий етап - це створення файлу twig_config.php. Даний фаил забезпечує взаємодію файлів - шаблонів з php файлами, які забезпечують роботу частини контролера системи.

<? php / *

Два наступні рядки підключають необхідні бібліотечні файли * /

require_once (DIR_LIB. 'pear / PEAR.php'); require_once (DIR_LIB. 'pear / Twig / Autoloader.php'); / / Запускаємо Twig

Twig_Autoloader :: register ();

/ / Вказуємо шлях до папки з шаблонами

$ loader = new Twig_Loader_Filesystem (DIR_TEMPLATES);

/* Вказуємо шлях до папки з cache, яка повинна бути відкрита на запис, в неї після першого запуску формуються php файли на основі шаблонів

*/

$ twig = new Twig_Environment ($ loader, array ( 'debug' => true,

'cache' => DIR_CACHE )); / *

Дві наступні рядки роблять доступними глобальні константи конфігураційного файлу в кожному шаблоні * /

$ twig-> addGlobal ('site_url', SITE_URL);

$ twig-> addGlobal ('site_title', SITE_TITLE); / *

Далі вказуємо ім'я файлу-шаблона. Змінна $ tpl_file повинна визначаться в кожному php файлі

* /

$ template = $ twig-> loadTemplate ($ tpl_file); / *

Далі виводимо на екран шаблон і передаємо йому масив. Даний масив

змінних $ tpl_vars повинен визначатися в кожному php файлі. * /

$ template-> display ($ tpl_vars); ?>

3. Підключення файлу-шаблона до файлу на мові php, формування масиву переданих змінних

Наступний етап - це формування файлу на мові php, в якому ми визначимо масив змінних, що вимагають виводу на екран, визначимо фаилшаблон і підключимо запуск шаблона

Фаил lab1.php <?php

require_once('config.php');

$menu = 'Left Menu';//константне значення $_user = 'User1'; //константне значення

//Нижче визначаємо масив змінних доступних в шаблоні - це три

//скалярні змінні (title, left_menu, user) з строковими значеннями $tpl_vars = array(

'title' => 'LAB1', //константне значення 'left_menu' => $menu,

'user' => $_user);

//Нижче визначаємо шлях до файлу-шаблону, який знаходиться в папці

//templates

$tpl_file = 'lab1.tpl';

//Запускаем шаблонизатор и выводим соответствующую страницу require_once('tpl_config.php');

?>

У папці templates повинен бути створений фаил lab1.tpl

4. Правило структурування шаблону base.tpl

Шаблон base.tpl-це базовий шаблон. На його основі будуть будуватися

шаблони до всіх файлів сайту base.tpl розміщується в папці templates. Даний фаїл являє собою базову структуру кожної сторінки сайту. Відмінністю від стандартної мови html є наявність виділених блоків. наприклад

{% block title%}

....

{% Endblock title%}

Кожен такий блок може бути перевизначеним в новому файлі-шаблоні, побудованому на основі шаблону base.tpl

Ще одним важливим моментом є відображення переданих в шаблон змінних.

{{site_title}}

Замість цієї конструкції буде виведено значення змінної site_title <!doctype html>

<html>

<head>

<title>

{% block title %} {{ site_title }}

{% endblock title %} </title>

</head>

<body>

{% block body %}

<div id="head_content"> {% block head_content %}

{% endblock head_content %} </div>

<div id="content"> {% block content %}

{% endblock content %}

</div>

<div id="footer"> {% block footer %}

Copyright © 2012 {% endblock footer %} </div>

{% endblock body %} </body>

</html>

5. Формування нового шаблону на основі base.tpl, відображення в шаблоні, переданих змінних

Останнім етапом у побудову сторіночки сайту є створення в папці templates файлу lab1.tpl. Даний фаил починається з вказівки того, який шаблон покладений в його основу. Далі ми повинні змінити тільки ті блоки, які нам необхідно. У нашому випадку ми міняємо блок head_content і блок content в базовому шаблоні.

Фаїл lab1.tpl

{% extends 'base.tpl' %} {% block head_content %} <h1>

{{title}}

</h1>

{% endblock head_content %} {% block content %}

<ul>

<li> {{left_menu}} </li>

<li>

{{user}}

</li>

</ul>

{% endblock content %}

У даному фаил змінна title виведена як заголовок сторінки в блоці heder_content і значення скалярних строкових змінних {{left_menu}} та {{user}} виведені у вигляді ненумерованого списку в блоці content

6. Індивідуальне завдання

Передати в шаблон наступні значення

1)ПІБ

2)Домашня адреса

3)Ріст

4)Вага

Вивести значення, що передано в наступних форматах:

1)в табличному вигляді;

2)у вигляді ненумерованого списку.

7. Підключення стилів

В наступних лабораторних роботах буде розглянуто на прикладах підключення стилів до гіпертекстового документу. В данній роботі представляється хід підключення.

1 етап. Створення константи STYLE_URL в конфігураційному файлі (config.php). Данна константа – це URL адреса файла зі стилями. Наведена нижче строка повинна бути вставлена після строки, що означає константу SITE_URL в конфігураційному файлі.

define("STYLE_URL", SITE_URL . '/present/lab/style/style.css');

2 етап. Означення глобальної відмінної style_url, що доступна в кожному шаблоні. Данне означення необхідно виконати в файті tpl_config.php в розділі означення глобальних відмінних. $twig->addGlobal('style_url', STYLE_URL)

3 етап. В базовому шаблоні base.tpl в частині head необхідно вставити посилання на фаїл зі стилями в наступному форматі:

<link rel="stylesheet" type="text/css" href="{{ style_url }}" media="all" >

ЛІТЕРАТУРА

1. Крейн Д., Паскарелло Э., Джеймс Д. Ajax в действии М.: Изд. дом "Вильямс" 2006. - 640с. : ил. Ajax

2. CSS: Каскадные таблицы стилей. Библиотека профессионала [Текст] / Кейт Шенгили - Робертс ; пер. с англ., ред. В. В. Вейтман. - 2-е изд. - М. ; СанктПетербург ; Киев : Издательский дом "Вильямс", 2005. - 720 с.

Соседние файлы в папке sukalova