Mojo::Base
НАЗВАНИЕ
Mojo::Base - Минимальный базовый класс для проектов Mojo
ОБЗОР
package Cat; use Mojo::Base -base; has 'mouse'; has paws => 4; has [qw/ears eyes/] => 2; package Tiger; use Mojo::Base 'Cat'; has stripes => 42; package main; my $mew = Cat->new(mouse => 'Mickey'); print $mew->paws; print $mew->paws(5)->paws; my $rawr = Tiger->new(stripes => 23); print $rawr->ears * $rawr->stripes;
ОПИСАНИЕ
Mojo::Base - предоставляет простой базовый класс для Mojo проектов.
ФУНКЦИИ
Mojo::Base экспортирует следующие функции, если импортированы с флагом
-base
или базовый класс.
# Автоматически активируются "strict" и "warnings" use Mojo::Base -base; use Mojo::Base 'SomeBaseClass';
Обе формы позволяют уменьшить количество кода.
# use Mojo::Base -base; use strict; use warnings; use feature ':5.10'; use Mojo::Base; push @ISA, 'Mojo::Base'; sub has { Mojo::Base::attr(__PACKAGE__, @_) } # use Mojo::Base 'SomeBaseClass'; use strict; use warnings; use feature ':5.10'; require SomeBaseClass; push @ISA, 'SomeBaseClass'; use Mojo::Base; sub has { Mojo::Base::attr(__PACKAGE__, @_) }
has
has 'name'; has [qw/name1 name2 name3/]; has name => 'foo'; has name => sub {...}; has [qw/name1 name2 name3/] => 'foo'; has [qw/name1 name2 name3/] => sub {...};
Метод has
создает атрибуты, также как и метод attr
.
МЕТОДЫ
Mojo::Base реализует следующие методы.
new
my $instance = BaseSubClass->new; my $instance = BaseSubClass->new(name => 'value'); my $instance = BaseSubClass->new({name => 'value'});
Это базовый класс предоставляет основной конструктор объекта. Ему можно передать хэш или ссылку на хэш со значениями атрибутов.
attr
__PACKAGE__->attr('name'); __PACKAGE__->attr([qw/name1 name2 name3/]); __PACKAGE__->attr(name => 'foo'); __PACKAGE__->attr(name => sub { ... }); __PACKAGE__->attr([qw/name1 name2 name3/] => 'foo'); __PACKAGE__->attr([qw/name1 name2 name3/] => sub { ... });
Создает атрибуты. Анонимный массив можно использовать для создания более одного атрибута. Если вместе с атрибутом передается его значение, оно будет использоваться как значение по умолчанию, это должна быть константа или ссылка на подпрограмму. Подпрограмма, переданная по ссылке в качестве значения будет вызвана при считывании значения атрибута, если не было установлено иное значение.
ОТЛАДКА
Есть возможность установить переменную MOJO_BASE_DEBUG
, чтобы получить
некоторую расширенную диагностическую информацию, выводимую в STDERR
.
MOJO_BASE_DEBUG=1