САМОУЧИТЕЛЬ PHP 4

Ядро


Ядро— это самая ответственная, но, на мой взгляд, в то же время и самая скучная часть работы программиста. Действительно, оно напрямую не взаимодействует с шаблоном страницы, а значит, не имеет права "общаться" с пользователем.

Ядро в идеале должно содержать лишь набор функций, которые позволяют исчерпывающим образом работать с объектом программы. В этом смысле идеально его объектно-ориентированное построение. Об объектно-ориенти­рованном программировании на PHP будет вкратце рассказано в главе 31, а пока не будем усложнять и без того "скользкую"

задачу и посмотрим, что представляет собой ядро нашей гостевой книги (листинг 30.5).

Листинг 30.5. Ядро: kernel.php

<?

// Загружаем конфигурацию.

include "config.php";

// Загружает гостевую книгу с диска. Возвращает содержимое книги.

function LoadBook($fname)

{  $f=@fopen("gbook.dat","rb");

   if(!$f) return array();

   $Book=Unserialize(fread($f,100000));

   fclose($f);



   return $Book;

}

// Сохраняет данные книги на диске.

function SaveBook($fname,$Book)

{  $f=fopen("gbook.dat","wb");

   fwrite($f,Serialize($Book));

   fclose($f);

}

?>

Действительно, здесь нет ничего, кроме определений функций и… еще одной инструкции include (вздохните с облегчением — на этот раз последней). Она добавляет конфигурационные данные нашей книги — всего лишь одну-единственную константу GBook, определяющую имя файла, в котором гоствевая книга и будет храниться. "Для порядка" приведу и его (листинг 30.6).

Листинг 30.6. Конфигурация: config.php

<?

define("GBook","gbook.dat"); // имя файла с данными книги

?>

Что же у нас получилось в результате? Мы "растянули" простой сценарий на целых 5 файлов (если считать еще и .htaccess, то на 6). Что ж, если вы так думаете, я с вами соглашусь. Тут все дело в том, что для простых сценариев (а именно такой мы и рассматривали) трехуровневая схема построения оказывается чересчур уж "тяжеловесной". Про такую ситуацию в народе говорят: "из пушки по воробьям". Что же касается сложных систем, не следует забывать, что "единственность" ядра может сэкономить нам количество файлов, если у комплекса много различных интерфейсов (например, разветвленная система администрирования), не говоря уже о простоте отладки и поддержки. Кроме того, можно полностью разделить работу по написанию ядра и интерфейса между несколькими людьми.



Содержание раздела