Отправляет email-рассылки с помощью сервиса Sendsay

PHP 5: Новые возможности.

  Все выпуски  

Ключевое слово final


PHP 5: Новые возможности.

Вниманию новых подписчиков!

Обратите, пожалуйста, внимание на то, что отдельные выпуски рассылки в той или иной мере взаимосвязаны; особенно, это относится к материалам практических занятий.

С предыдущими выпусками Вы можете ознакомиться:

  1. в архиве рассылки (оригиналы выпусков);
  2. на сайте рассылки (исправленные и дополненные версии).

# # #

Вы также можете подписаться на рассылку "PHP 5 для начинающих".

Иногда бывает необходимо предотвратить перекрытие того или иного метода или даже наследование всего класса целиком. В PHP 5 для этого предусмотрено ключевое слово final.

На текущем практическом занятии займемся доработкой класса SSSEx и шаблона index.htm, а также внесем некоторые дополнения в базовый пакет SSS.

Исправим номер версии пакета SSS на 0.05 везде, где это требуется.

Добавим две новых константы и один статический метод в класс SSS.

    /**
     * The product name
     *
     * @var string
     * @since 0.05
     */
    const PRODUCT_NAME = 'Simple Site Solution';
    
    /**
     * The official web page
     *
     * @var string
     * @since 0.05
     */
    const WWW = 'http://pterodactyl.l2p.net/php5/';
        

    /**
     * Returns the HTML link to the official page
     *
     * @static
     * @access public
     * @return string
     * @since 0.05
     */
    public static function getCredits()
    {
        $url = self::WWW;
        $product = self::PRODUCT_NAME;
        $version = self::VERSION;

        return "<a href=\"$url\">$product $version</a>";
    } // end func getCredits
        

Поскольку класс SSSEx в будущем не будет наследоваться, то есть смысл объявить его конечным.

final class SSSEx extends SSS

Далее займемся шаблоном index.htm. Разделим страницу на три блока: заголовок, основную часть и подножие (Пример 3, «Шаблон index.htm»). В основной части оставим обещание наполнить шаблон со временем реальным содержимым. В остальные два блока частично будем подставлять данные в методе getContentData (Пример 4, «Метод getContentData»). Для этого нам придется познакомиться с некоторыми новыми для нас возможностями пакета HTML_Template_Flexy.

Механизм подстановки данных уже реализован нами в предыдущих версиях, но сами данные пока что отсутствовали. Теперь же введем два новых элемента для подстановки в шаблон: title и credits. Первый из них будет подставляться в заголовок страницы, а второй - в подножие. Конкретное место для подстановки в шаблон указывается при помощи названия элемента, обрамленного фигурными скобками: {title}. Если элемент содержит HTML код, после его названия следует поставить двоеточие и добавить букву 'h': {credits:h}. Остается лишь добавить в объект класса stdClass, который используется для инкапсуляции подставляемых данных, две переменные, названия которых совпадают с названиями элементов для подстановки, и присвоить им значения.

        $data->title = $this->getTitle();
        $data->credits = self::getCredits();
        

Элементу title, таким образом, автоматически присваивается значение заголовка страницы (метод getTitle, определенный в классе HTML_Page2), а на место элемента credits подставляется ссылка на официальную страницу нашего проекта (только что определенный нами статический метод getCredits).

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

Created with DocBook Created with Libxslt


В избранное