Template Toolkit: Модули: Template::Base

Template Toolkit

(русская редакция)

[ Пособия ] [ Руководство ] [ Модули ] [ Библиотеки ] [ Утилиты ] [ Вопросы ] [ Релиз ] [ Perl-ресурсы ] Форум ]
 
Поиск
Template Toolkit | Модули | Template::Base

Template::Base

[ ◄ Template ] [ Template::Config ► ]
Базовый класс, реализующий общую функциональность.

Оглавление

ОБЗОР

Индекс ] [ Модули ] [ Наверх ]

    package My::Module;
    use base qw( Template::Base );
    sub _init {
	my ($self, $config) = @_;
	$self->{ doodah } = $config->{ doodah }
	    || return $self->error("No 'doodah' specified");
	return $self;
    }
    package main;
    my $object = My::Module->new({ doodah => 'foobar' })
        || die My::Module->error();

ОПИСАНИЕ

Индекс ] [ Модули ] [ Наверх ]

Модуль базового класса, который реализует конструктор и функциональность сообщений об ошибках для различных модулей Template Toolkit.

ПУБЛИЧНЫЕ МЕТОДЫ

Индекс ] [ Модули ] [ Наверх ]

new(\%config)

Метод конструктора, который принимает в качестве параметров ссылку на хеш или массив пар 'name => value', которые сохраняются в хеш. Затем вызывается метод _init(), которому передается хеш конфигурации и который должен вернуть истинное или ложное значение в зависимости от успешного или неудачного выполнения. Любое сообщение об ошибке может быть получено через метод класса error() или напрямую из переменной пакета ERROR производного класса.

    my $module = My::Module->new({ ... })
        || die My::Module->error(), "\n";
    my $module = My::Module->new({ ... })
        || die "constructor error: $My::Module::ERROR\n";

error($msg, ...)

Может быть вызван как метод объекта для получения/установки внутренней переменной _ERROR или как метод класса для получения/установки переменной $ERROR пакета производного класса.

    my $module = My::Module->new({ ... })
        || die My::Module->error(), "\n";
    $module->do_something()
	|| die $module->error(), "\n";

При вызове с аргументами (несколько параметров склеиваются) этот метод устанавливает соответствующую переменную и возвращает undef. Это наиболее часто используется внутри методов объекта для сообщения об ошибках вызывающей функции.

    package My::Module;
    sub foobar {
	my $self = shift;
	# какой-то код...
	return $self->error('some kind of error...')
	    if $some_condition;
    }

debug($msg, ...)

Генерирует отладочное сообщение, склеивая в строку все переданные аргументы, и посылает его на STDERR. Добавляется префикс, указывающий на вызывающий модуль.

    package My::Module;
    sub foobar {
	my $self = shift;
	$self->debug('called foobar()');
	# какой-то код...
    }

Когда вызывается метод foobar(), на STDERR отправлется следующее сообщение:

    [My::Module] called foobar()

Объекты могут устанавливать внутреннюю переменную DEBUG, которую проверяет метод debug(). Если у этой переменной установлены биты, обозначающие DEBUG_CALLER, то к сообщению будут добавлены имя файла и строка вызывающего модуля.

    use Template::Constants qw( :debug );
    my $module = My::Module->new({
        DEBUG => DEBUG_SERVICE | DEBUG_CONTEXT | DEBUG_CALLER,
    });
    $module->foobar();

Сгенерируется следующее сообщение:

    [My::Module] called foobar() at My/Module.pm line 6

АВТОР

Индекс ] [ Модули ] [ Наверх ]

Энди Уардли (Andy Wardley <abw@andywardley.com>)

http://www.andywardley.com/

ВЕРСИЯ

Индекс ] [ Модули ] [ Наверх ]

2.70, поставляется в составе Template Toolkit версии 2.14, дата релиза - 4 октября 2004.

АВТОРСКИЕ ПРАВА

Индекс ] [ Модули ] [ Наверх ]

  Copyright (C) 1996-2004 Andy Wardley.  All Rights Reserved.
  Copyright (C) 1998-2002 Canon Research Centre Europe Ltd.

Этот модуль является свободно-распространяемым программным обеспечением; вы можете распространять и/или модифицировать его на тех же условиях, что и Perl.

СМОТРИ ТАКЖЕ

Индекс ] [ Модули ] [ Наверх ]