Page 50 - 4252
P. 50

Наприклад, у виставі ми можемо написати:

                  / / Це код на PHP
                  public function displayDefault () {
                  echo "<p> Введіть ім'я:";
                  echo "<input type='text' name='name' value=''>";
                  }
                  А потім через місяць жахнутися, і перейти до використання шаблонізатора.
            Скажімо, smarty.
                  Або, наприклад, в моделі змінити пару розрахункових формул. Або в кон-
            тролері  забрати  пару  обмежень,  або  змінити  метод  прийому-передачі  даних.
            Якщо ж взяти до уваги принципи спадкування в ООП, то архітектура MVC ста-
            не ще зручніше. Скажімо, коли є дві форми, що виглядають однаково, але дещо
            відрізняються алгоритмами розрахунку.
                  У висновку, хотілося б все ж таки привести деякий скелет коду на PHP для
            кращого засвоєння ідеї MVC.

                  <?
                  / **
                  * Приклад реалізації MVC на PHP
                  *
                  ** /
                  class Controller {
                  private $ error;
                  private $ result;
                  function __construct () {
                  $ This-> error = false;
                  $ This-> result = false;
                  }

                  function processData () {
                  $ This-> userRequest ();
                  if ($ this-> error)
                  View:: displayError ($ this-> error);
                  else
                  if ($ this-> result)
                  View:: displayResults ($ this-> result);
                  else
                  View:: displayDefault ();
                  }
                  function userRequest () {
                  / / Дані відправлені
                  if (isset ($ _POST ['send'])) {
                  $ This-> validate ();
                  if (! $ this-> error) {

                                                           49
   45   46   47   48   49   50   51   52   53   54   55