Розробка уроку

Тема: елементи подійно-орієнтованого програмування мовою PHP

Мета:

Обладнання: ПК із встановленими ОС і веб-сервером на локальному ПК (наприклад, MS Windows + Denwer) або зареєстрованим хостингом.

Структура уроку

  1. Організаційний момент.
  2. Актуалізація опорних знань.
  3. Вивчення нового матеріалу.
  4. Закріплення вивченого матеріалу.
  5. Підведення підсумків уроку.
  6. Домашнє завдання.

Хід уроку

1. Організаційний момент
Привітання з учнями. Перевірка присутності і готовності учнів до уроку. Перевірка виконання домашнього завдання. Оголошення теми й мети уроку.

2. Актуалізація опорних знань

  1. Опишіть синтаксис PHP скрипта.
  2. Сформулюйте правила для створення змінних у PHP.
  3. Перелічить типи даних підтримує PHP?
  4. Назвіть групи операторів мови PHP.
  5. Опишіть умовні оператори, цикли, конструкції включення.
  6. Як розмічають форми мовою HTML?

У мові PHP використовують і процедурне, і об'єктно-орієнтовне програмування.

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

Об'єктно-орієнтовне програмування (ООП) робить наголос на поняттях об'єкт, властивості, методи, події. З появою ООП з'явилися такі терміни: клас, наслідування, поліморфізм, інкапсуляція — див. опис.

Змінну потрібного типу (об'єкт) у програмі мовою PHP створюють з класу за допомогою оператора new. Створивши об'єкт, до нього можна застосувати всі методи і отримати всі його властивості, визначені в описі класу.

Опис класу у мові РНР:

class Назва_класу
{ var $назва_властивості;
  /*перелік назв властивостей*/
  
  function назва_методу()
  {/*визначення методу*/
  }

  /*опис методів*/
}

Наприклад, код:

<?php 
class Person /* cтворення (опис) класу людей */
{ function know_php () 
  { echo "Тепер я вчу PHP!"; 
  } 
} 

$Bob = new Person;   /* створення об'єкту Bob з класу людина */ 
$Bob -> know_php (); /* застосування методу до створеного об'єкту */
?> 

дає такий результат:

Тепер я вчу PHP!

А цей код:

<?php 
class Plane
{ public $silvery_board = 'Сріблястий літачок';
  public $white_board   = 'Білий літачок';
  function What_the_plane () {echo ' Клас '.get_class($this);} 
  function turn_on_engine () {echo ' Завів двигун';}
  function speed_on()        {echo ' Збільшив швидкість';}
  function fly_to_sky()      {echo ' Полетів';}   
}; 

$A747 = new Plane; 
echo "Властивість об'єкту ". $A747 -> silvery_board;

// методи обєкту
$A747 -> What_the_plane ();
$A747 -> turn_on_engine ();
$A747 -> speed_on();
$A747 -> fly_to_sky();
?>

дає такий результат:

Властивість об'єкту Сріблястий літачок Клас Plane Завів двигун Збільшив швидкість Полетів

В основі ООП лежать поняття класу й наслідування та багаторазове використання одного й того самого коду. Наприклад, такий код:

<?php
class First
{ public $a;     //досяжний з будь якого-місця програми
  protected $b;  //досяжний з класу власника й нащадків
  private $c;    //досяжний лише з класу власника 
	
  public function __construct() //конструктор класу,
  { $this->SetA(1);             //викликають при створенні об'єкта класу 
  } 

  public function SetA($in_a) 	//запис у параметр класу значення,
  { $this->a = $in_a;           //переданого при виклику методу 
  } 
      
  public function GetA()        //виведення значення параметра класу 
  { echo $this->a.' '; 
  } 

  public function __destruct()  //деструктор класу для знищення об'єкта
  { echo 'obj is close'; 
  } 
} 

$test = new First();  //створення екземпляру класу 
$test->GetA();
$test->SetA(4); 
$test->GetA(); 
?>

дає такий результат:

1 4 obj is close

Успадкування (наслідування)
З класу можна створити «підклас» — спеціалізовану, розширену версію класу — за допомогою вказівки extends. Можна утворити цілі дерева успадкування. Підкласи успадковують властивості й поведінку своїх батьківських класів, і можуть мати свої власні. Успадкування може бути одиничне (один безпосередній батьківський клас) та множинне (кілька батьківських класів). Це залежить і від вибору програміста, і від мови програмування. Наприклад, у Java дозволено лише одинарне успадкування, а в С++ — і те, й інше.

Наслідують параметри й методи класу з ідентифікаторами доступу public і protected. При потребі батьківський конструктор або деструктор викликають дочірньому класі з допомогою вказівки parent:: Можна перевизначити наявні параметри й методи батьківського класу, можна залишити їх без змін, можна додати нові:

<?php
class First
{ public $a;
  protected $b;
  private $c;
  public function __construct(){$this->SetA(1);} 
  public function SetA($in_a)  {$this->a = $in_a;} 
  public function GetA()       {echo $this->a.' ';} 
  public function __destruct() {echo 'obj is close';} 
} 

class Third extends First        //створення нащадка класу First 
{ public function  __construct() //переозначення конструктора
  { parent::__construct();       //виклик конструктора батьківського класу
	$this->b = 700;              //змінити значення властивості класу 
  } 

  public function SetA($in_a)    //переозначення методу
  { $in_a = $in_a*2; 
    parent::SetA($in_a); 
  }

  public function GetB()         //опис нового методу
  { echo $this->b.' '; 
  } 
}

$test = new Third(); //створення екземпляру класу 
$test->GetA(); 		 // результат 2 
$test->GetB();       // результат 700 
$test->SetA(4); 
$test->GetA();       // результат 8 
$test->GetB();       // результат 700 
?>

3. Вивчення нового матеріалу

Подіязміна властивостей об'єкта, взаємодія між об'єктами, утворення нового об'єкта або знищення наявного об'єкта — може бути породжена програмою або користувачем (наприклад, натисканням клавіш на клавіатурі чи кнопок миші). Програмне забезпечення може викликати свій власний набір подій у цикл обробки подій, наприклад, повідомляти про завершення завдання. Деякі програми кардинально змінюють свою поведінку у відповідь на винекнення подій. Такі програми називають подійно-орієнтованими.

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

Сучасні веб-ресурси не лише надають інформацію, але і взаємодіють з користувачем. Одною із важливих функцій РНР є передавання значень змінних із форм HTML та їхнє опрацювання. Передавання змінних між формами і сторінками — це саме та інтерактивність, заради якої використовують PHP. Тому ми зосередимося лише на подіях передавання (отримування) даних.

Щоб взаємодіяти з користувачем потрібно отримувати деякі дані від нього. Для цього використовують, наприклад, методи GET і POST. У PHP передбаченно підтримку цих методів передавання даних. Розглянемо, як працюють ці методи.

Метод GET розглянемо на прикладі веб-сторінки, на якій:

Дані буде опрацьовано програмою 1.php за допомогою методу GET:

<?php 
  if (! empty ($_GET [ "name"]) &&! empty ($_GET [ "age"])) 
    {echo "Отримано нові вхідні: ім'я -". $_GET [ "name"]. ", вік - ". $_GET [" age "]." років ";} 
  else {echo" Змінні не дійшли. Перевірте все ще раз. "; } 
?>

За допомогою умовного оператора перевірено, чи змінні name і age порожні. Якщо вони не порожні, то їх виведено, інакше повідомлено про це.

Метод POST розглянемо на прикладі веб-сторінки. Цей метод використовують лише у формі:

Опрацювання даних з форми можна здійснити таким кодом:

<?php 
if (! empty ($ _ POST [ "user_name"]) &&! empty ($ _ POST [ "age"])) 
{ echo "Отримано нові вхідні: <br>"; 
  echo "ім'я -"; 
  echo $ _POST [ "user_name"]; 
  echo "<br> вік -"; 
  echo $ _POST [ "age"]; 
  echo "років"; 
} 
else 
{ echo "Дані не надійшли. Перевірте все ще раз."; 
} 
?>

4. Закріплення вивченого матеріалу

  1. Коли доцільно використовувати GET?
    Дані (всі назви зміних і значення) надіслані з форми з методом GET буде відображено в URL-адресі). Обмеження надісланих символів становить біля 2000 символів. GET ніколи не потрібно викорис­товувати для надсилання паролів або іншої конфіденційної інформації!

  2. Коли доцільно використовувати POST?
    Дані, надіслані за допомогою методу POST, невидимі для інших, бо всі назви і значення вбудовано у тіло запиту HTTP. При цьому не обмежено обсяг інформації, яку надсилають. У цьому випадку змінні не відображено в URL-адресі, тому неможливо закріпити сторінку. Зазвичай розробники віддають перевагу POST для надсилання даних форми.

  3. Описати дію коду:

    <form action = "formular.php" method = "POST">
      <input type = "reset" value = "очистити" >
      <input type = "submit"  value = "відправити"><br><br>
      <input type ="text" name = "name">  Ім'я  <br>
      <input type ="text" name = "number">
      Номер
    </form>
    
    
    <?php 
    $namber = $_POST["number"];
    if (($_POST=="number") || (($number)<1))
         {echo "Поле номер не заповнено";}
    else {echo $number;}
    ?>

5. Підведення підсумків уроку
Оцінювання результату роботи учнів.

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

Корисні посилання


Текст упорядкувала Дуга Ірина Сергіївна, вчитель спеціалізованої школи №53 І-ІІІ ступенів з поглибленим вивченням німецької мови міста Києва, під час виконання випускної роботи на курсах підвищення кваліфікації з 30.10.2017 по 03.11.2017.