Итог
Любой
объект в Parser принадлежит конкретному
классу, характеризуется
полями и
методами именно этого класса. Чтобы он появился, его нужно создать. Делает это
конструктор данного класса. Разберитесь с этой терминологией, это основа.
Отвлеклись? Продолжим. Переменной
$sections мы присвоили вот что:
^table::load[sections.cfg]
Буквально это означает следующее: мы создали объект класса
table при помощи конструктора load. Общее правило для создания объекта записывается так:
^имя_класса::конструктор[параметры_конструктора]
Подробности в разделе «Передача параметров».
В качестве параметра конструктору мы передали имя файла с таблицей и путь к нему.
Теперь переменная
$sections содержит таблицу с разделами нашего сайта. Parser считает ее объектом класса
table и точно знает, какие действия с ней можно выполнить. Пока нам понадобится только один метод этого класса -
menu, который последовательно перебирает все строки таблицы. Также нам потребуются значения из полей самой таблицы. Синтаксис вызова методов объекта:
^объект.метод_класса[параметры]
Получение значений полей объекта (мы ведь имеем дело с вполне определенной таблицей с заданными нами же полями):
$объект.имя_поля
Знания, полученные выше, теперь позволяют без труда разобраться в последней части нашего кода:
<table width="100%" border="1">
<tr>
^sections.menu{
<td align="middle">
<a href="$sections.uri"><nobr>$sections.name</nobr></a>
</td>
}
</tr>
</table>
Мы формируем HTML-таблицу, в каждый столбец которой помещаем значения, содержащиеся в полях нашей таблицы
$sections:
uri - адрес и
name - имя. При помощи метода
menu мы автоматически перебираем все строки таблицы. Таким образом, даже если у нас будет несколько десятков разделов, ни один из них не будет потерян или пропущен. Мы можем свободно добавлять разделы, удалять их и даже менять местами. Изменения вносятся только в файл sections.cfg. Логика работы не нарушится. Все просто и красиво.
Давайте подведем итоги первого урока.
Содержание раздела