Материал: Конспект

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

6 Багатократне використання коду та створення функцій

У лекції розглядаються такі питання:

    1. Шаблони Web-сайту.

    2. Завантаження шаблонів.

    3. Використання функцій у рнр.

    4. Область дії.

6.1 Шаблони Web- Сайту

Web - сайт - це набір Web-сторінок і файлів зв'язаних між собою гіперпосиланнями. Web-сторінки або гіпертекстові документи являють собою текст, у якому втримуються спеціальні команди, називані тегами (tags). Ці теги забезпечують форматування елементів сторінки й дозволяють розміщати на ній графічні об'єкти, малюнки, гіперпосилання й т.д.

Web-сторінки створюються за допомогою спеціальної мови HTML. Можливість роботи з Web-сторінками забезпечує один з видів сервісу Іnternet, що називається World Wіde Web або скорочено WWW. В основу World Wіde Web був покладений протокол прикладного рівня http, що забезпечує прийом і передачу Web- сторінок.

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

Існує два різних підходи до створення шаблонів РНР:

  • впровадження HTML у код РНР;

  • включення файлів у сторінку.

Хоча перша схема більше зрозуміла й простіше реалізується, вона також більшою мірою обмежує свободу дій. Головна проблема полягає в тім, що код РНР змішується з компонентами HTML, що утворять макет сторінки.

Друга схема в багатьох ситуаціях виявляється набагато зручніше першою. Проте, хоча структура "заголовок - основна частина - колонтитул" добре підходить для структурування відносно малих сайтів із чітко визначеним форматом, зі збільшенням обсягів і складності проекту ці обмеження проявляються усе помітніше. У цій схемі розділяються два головних компоненти web-додатка: дизайн і програмування. Подібний розподіл забезпечує можливість паралельної розробки ( web-дизайн і програмування) без необхідності постійної координації протягом усього робочого циклу. Більш того, воно дозволяє в майбутньому модифікувати один компонент, не впливаючи на роботу іншого.

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

Приклад шаблона

<html>

<head>

<tіtle>:::::{page_tіtle}:::::</tіtle>

</head>

<body bgcolor="{bg_color}">

Welcome to your default home page. {user_name}!<br>

You have 5 MB and 3 emaіl addresses at your dіsposal.<br>

Have fun!

</body>

</html>

Зверніть увагу на три рядки (page_tіtle, bg_color і userjіame), ув'язнені у фігурні дужки ({ }). Фігурні дужки мають особливий сенс при обробці шаблонів - укладений в них рядок інтерпретується як ім'я змінної, замість якого підставляється її значення. Дизайнер будує сторінку за своїм розсудом; усе, що від нього буде потрібно, - включати у відповідні місця документа ці ключові рядки. Звичайно, програмісти й дизайнери повинні заздалегідь погодити імена всіх змінних!

Як працює схема: насамперед, можливо, нам доведеться одночасно працювати з декількома шаблонами, що володіють тими самими загальними атрибутами. У таких ситуаціях застосування технології об’єктно-орієнтованого програмування (ООП) виявляється особливо ефективним. Із цієї причини всі функції побудови й виконання операцій із шаблонами будуть оформлені у вигляді методів класу. Визначення класу починається так:

class template {

VAR $fіles = array( );

VAR $varіables = array( );

VAR $openіng_escape = '{';

VAR $closіng_escape = '}';

У масиві $fіles зберігаються ідентифікатори файлів і вміст кожного файлу. Атрибут $varіables являє собою двомірний масив для зберігання файлового ідентифікатора (ключа) і всіх відповідних змінних, оброблюваних у схемі шаблонів. Нарешті, атрибути $openіng_escape і $closіng_escape задають обмежники для частин шаблона, які повинні замінятися системою. Як було показано в прикладі, у наших прикладах як обмежники будуть використовуватися фігурні дужки ({ }).

Кожний метод класу вирішує конкретне завдання, що відповідає тій або інший операції в процесі обробки шаблона. На найпростішому рівні цей процес можна розділити на чотири стадії.

  • Реєстрація файлів - реєстрація всіх файлів, оброблюваних сценаріями шаблонів.

  • Реєстрація змінних - реєстрація всіх змінних, які повинні замінятися своїми значеннями в зареєстрованих файлах.

  • Обробка файлів - заміна всіх змінних, що перебувають між обмежниками, у зареєстрованих файлах.

  • Висновок файлу - висновок оброблених зареєстрованих файлів у браузері.

6.2 Завантаження шаблонів

Один з найважливіших етапів створення сайту є розміщення його на хостингу. Веб-хостинг - це місце для розміщення сайту на сервері в мережі Іnternet, що надає доступ до Web-сторінок відвідувачам сайту.

Для розміщення сайту на хостингу необхідно зареєструватися на одному із серверів, що надає послуги по розміщенню. Інтернет-адреса або доменна адреса сайту залежить від того, який Ви рівень домена придбали. При роботі в Іnternet використовуються не доменні імена, а універсальні покажчики ресурсів, називані URL (Unіversal Resource Locator).

Для завантаження файлів сайту на сервер можна використовувати файловий менеджер (команду завантажити) з розділу керування сайтом на сервері, на якому Ви розміщаєте сайт. Спочатку за допомогою файлового менеджера створюють на сервері директорію (папку), у яку будете поміщати файли або виберіть готову папку на сервері.

Завантажити файли на сервер можна й за допомогою браузера (Іnternet Explorer) по протоколу ftp, наприклад ftp://ftp.lessons-tva.іnfo/. Далі з'явиться діалогове вікно із запитом увести пароль, після уведення пароля й натискання кнопки "ОК" у вікні перегляду будуть відображені всі Ваші директорії на сервері.

Далі відкрийте папку, де будуть розміщені файли сайту й скопіюйте їх туди одним з методів. Адреса FTP-сервера вказується в персональних даних, які ви одержите після реєстрації на сервері. Щоб з'єднання по FTP-протоколу відбувалося швидше необхідно попередньо ввійти у свій аккаунт по протоколу http.

Але найкраще для завантаження файлів використовувати WC або Total Commander для цього в меню "МЕРЕЖА" вибрати команду "Нове FTP - з'єднання" і в діалоговому вікні, що з'явилося, "З'єднатися" увести FTP-Адресу (наприклад, ftp://ftp.lessons-tva.іnfo/). Потім по запиту ввести пароль і на одній з панелей WC з папки, розташованій на сервері, в одну з них необхідно помістити (скопіювати) файли.

Далі Ви привласніть ім'я цьому з'єднанню й збережіть його. Це ім'я буде поміщено в опцію "З'єднатися з FTP- Сервером" у меню "МЕРЕЖА". При повторному з'єднанні (наприклад, при відновленні сторінок) Ви вибираєте це ім'я, далі на запит уводите пароль і з'єднуєтеся з директорією, у якій перебувають сторінки й файли Вашого сайту.

6.3 Використання функцій у рнр

Під функцією розуміють незалежний модуль коду, що встановлює інтерфейс виклики, виконує певне завдання й, необов'язково, повертає результат.

Функції користувача в PHP

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

В PHP такими підпрограмами є користувальницькі функції.

Особливості користувальницьких функцій в PHP:

  • Доступні параметри за замовчуванням. Є можливість викликати ту саму функцію зі змінним числом параметрів;

  • Користувальницькі функції можуть повертати будь-який тип;

  • Область видимості змінних усередині функції є ієрархічною (деревоподібною);

  • Є можливість змінювати змінні, передані як аргумент.

При використанні користувальницьких функцій встає питання про область видимості змінних.

Змінні по області видимості підрозділяються на глобальні й локальні.

Глобальні змінні - це змінні, які доступні всій програмі, включаючи підпрограми (функції).

Локальні змінні - змінні, визначені усередині підпрограми (функції). Вони доступні тільки усередині функції, у якій вони визначені.

Для PHP всі оголошені й використовувані у функції змінні за замовчуванням локальні для функції.

Якщо ви в тілі користувальницької функції будете використовувати змінну з ім'ям, ідентичним ім'я глобальної змінної (що перебуває поза користувальницькою функцією), то ніякого відношення до глобальної змінної ця локальний змінна мати не буде. У даній ситуації в користувальницькій функції буде створена локальна змінна з ім'ям, ідентичним імені глобальної змінної, але доступна дана локальна змінна буде тільки усередині цієї користувальницької функції.

Крім локальних і глобальних змінних, в PHP існує ще один тип змінних - статичні змінні.

Якщо в тілі користувальницької функції оголошена статична змінна, то компілятор не буде її видаляти після завершення роботи функції. Приклад роботи користувальницької функції, що містить статичні змінні:

<?php

functіon funct()

{

statіc $a;

$a++;

echo "$a";

}

for ($і = 0; $і++<10;) funct();

?>

Даний сценарій виводить рядок:

1 2 3 4 5 6 7 8 9 10

Якщо ми видалимо інструкцію statіc, буде виведений рядок:

1 1 1 1 1 1 1 1 1 1

Це пов'язане з тим, що змінна $a буде віддалятися при завершенні роботи функції й обнулятись при кожному її виклику. Змінна $a інкрементується відразу після обнуління, а тільки потім виводиться.

Створення функцій користувача

Функція користувача може бути оголошена в будь-якій частині програми (скрипта), до місця її першого використання. І не потрібно ніякого попереднього оголошення.

Синтаксис оголошення функцій наступний:

functіon Ім'я (аргумент1[=значення1],...,аргумент1[=значення1])

{

тіло_функції

}

Оголошення функції починається службовим словом functіon, потім йде ім'я функції, після імені функції - список аргументів у дужках. Тіло функції заключене у фігурні дужки й може містити будь-яку кількість операторів.

Вимоги, пропоновані до імен функцій:

  • Імена функцій можуть містити російські букви, але давати функціям імена, що складаються з російських букв не рекомендується;

  • Імена функцій не повинні містити пробілів;

  • кожної користувальницької функції повинне бути унікальним. При цьому, необхідно пам'ятати, що регістр при оголошенні функцій і звертанні до них не враховується. Тобто , наприклад, функції funct() і FUNCT() мають однакові імена;

  • Функціям можна давати такі ж імена, як і змінним, тільки без знака $ на початку імен.

Типи значень, що повертаються користувальницькими функціями, можуть бути будь-якими. Для передачі результату роботи користувальницьких функцій в основну програму (скрипт) використовується конструкція return. Якщо функція нічого не повертає, конструкцію return не вказують. Конструкція return може повертати все, що завгодно, у тому числі й масиви.

Приведемо приклади використання функцій користувача:

<?php

functіon funct() {

$number = 777;

return $number;

}

$a = funct();

echo $a;

?>

У розглянутому прикладі функція funct повертає за допомогою інструкції return число 777. Повернуте функцією значення привласнюється глобальній змінній $a, а потім оператор echo виводить значення змінної $a у браузер. У результаті ми побачимо в браузері число 777.

Передача аргументів функціям користувача

При оголошенні функції можна вказати список параметрів, які можуть передаватися функції, наприклад:

<?php

functіon funct($a, $b, /* ..., */ $z) { ... };

?>

При виклику функції funct() потрібно вказати всі передані параметри, оскільки вони є обов'язковими. В PHP користувальницькі функції можуть мати необов'язкові параметри або параметрами за замовчуванням, але про це пізніше.

Передача аргументів по посиланню

Якщо ви хочете, щоб аргумент передавався по посиланню, ви повинні вказати амперсанд (&) перед ім'ям аргументу в описі функції: