|
|
www.lissyara.su
—> статьи
—> FreeBSD
—> Programming
—> MVC Catalyst
Catalyst - The Elegant MVC Web Application Framework
Автор: ProFTP.
email: q7u5@ukr.net
в разработке http://forum.lissyara.su/viewtopic.php?f=14&t=16847&p=193943#p193943
Краткий обзор
См. Catalyst::Manual для общего распространения документаций и руководства.
# Установите Catalyst::Devel для расширеной работы
# и другие средства разработки
# Использовать помощника для создания новых приложений:
catalyst.pl MyApp
# Добавление моделей, представлений, контроллеров
script/myapp_create.pl model MyDatabase DBIC::Schema
create=static dbi:SQLite:/path/to/db
script/myapp_create.pl view MyTemplate TT
script/myapp_create.pl controller Search
# тестовый запуст -- используйте -r, чтобы перезагрузить автоматически,
# если изменились файлы на диске
# -- help, чтобы увидеть все возможные варианты
script/myapp_server.pl
# командная строка для тестирование интерфейса
script/myapp_test.pl /yada
### in lib/MyApp.pm
use Catalyst qw/-Debug/; # здесь также можно включить плагины
### In lib/MyApp/Controller/Root.pm (autocreated)
sub foo : Global { # called for /foo, /foo/1, /foo/1/2, etc.
my ( $self, $c, @args ) = @_; # args are qw/1 2/ for /foo/1/2
$c->stash->{template} = 'foo.tt'; # определить шаблон
# посмотреть кое-что из БД --
# stash элементы (в виду хэша) передаются TT
$c->stash->{data} =
$c->model('Database::Foo')->search( { country => $args[0] } );
if ( $c->req->params->{bar} ) { # access GET or POST parameters
$c->forward( 'bar' );
# процесс другой деятельности (условно говоря наследование)
# можно делать что-то еще после возвращения
}
}
# В foo.tt TT шаблон, можно использовать данные из базы данных
[% WHILE (item = data.next) %]
[% item.foo %]
[% END %]
# called for /bar/of/soap, /bar/of/soap/10, etc.
sub bar : Path('/bar/of/soap') { ... }
# все действия, сверху-вниз в контроллере
sub auto : Private {
my ( $self, $c ) = @_;
if ( !$c->user_exists ) { # Catalyst::Plugin::Authentication
$c->res->redirect( '/login' ); # require login
return 0; # отменить запрос и перейти сразу к end()
}
return 1; # Успех; перевести к следующему действий
}
# вызвал все действия после завершения
sub end : Private {
my ( $self, $c ) = @_;
if ( scalar @{ $c->error } ) { ... } # обрабатывать ошибки
return if $c->res->body; # уже есть ответ
$c->forward( 'MyApp::View::TT' ); # перейти к шаблону
}
### in MyApp/Controller/Foo.pm
# called for /foo/bar
sub bar : Local { ... }
# called for /blargle
sub blargle : Global { ... }
# индекс действий /foo, but not /foo/1, etc.
sub index : Private { ... }
### in MyApp/Controller/Foo/Bar.pm
# called for /foo/bar/baz
sub baz : Local { ... }
# первый автоматически вызывается Root, затем Foo, потом это:
sub auto : Private { ... }
# мощный механизм регулярных выражений путей, можно определить
# в атрибуте метода
sub details : Regex('^product/(\w+)/details$') {
my ( $self, $c ) = @_;
# extract the (\w+) from the URI
my $product = $c->req->captures->[0];
}
| См. Catalyst::Manual::Intro Для получения дополнительной информации.
ОПИСАНИЕ
Catalyst это современный фреймворк для создания веб приложений без боли обычно связаной с этим процессом. Этот документ является ссылкой на главное применение Catalyst'a. Если Вы являетесь новым пользователем, мы рекомендуем вам начать с Catalyst::Manual::Tutorial или Catalyst::Manual::Intro.
См. Catalyst::Manual подробную документацию.
Catalyst'a плагины могут быть загружены, назвав их в качестве аргументов для "use Catalyst". Пропустить Catalyst::Plugin:: префикс плагина с именем, т.е. Catalyst::Plugin::My::Module становится My::Module.
use Catalyst qw/My::Module/;
| Если Ваш плагин начинается с названия, помимо Catalyst::Plugin:: Вы можете получить полное имя, используя унарные плюс:
use Catalyst qw/
My::Module
+Fully::Qualified::Plugin::Name
/;
|  
Специальные флаги же -Debug и -Engine также может быть указан в качестве аргумента, когда Catalyst загружен:
use Catalyst qw/-Debug My::Module/;
|  
Позиция плагинов и флаги в цепи имеет важное значение, так как они загружаются в том порядке, в котором они появляются.
Поддерживаются следующие флаги:
-Debug
Включает отладочный вывод. Вы также можете использовать параметр в окружающей среде CATALYST_DEBUG или <MYAPP> _DEBUG. В окружающей среде переопределяют настройки приложения с <MYAPP> _DEBUG имеющих наивысший приоритет.
-Engine
 
Принудительно Catalyst может использовать конкретного двигателя. Без Catalyst::Engine:: префикса двигателя нужно ввести название, а именно:
use Catalyst qw/-Engine=CGI/;
| -Home
Принудительно Catalyst использует определенную домашнюю директорию, например:
use Catalyst qw[-Home=/usr/mst];
|  
Это также может быть сделано в основе путем установления либо CATALYST_HOME переменной окружения или MYAPP_HOME, где MyApp заменяется на заглавное имя вашего приложения, любой "::" его имя будет заменено подчеркивания, например, если MyApp::Web, то следует использовать MYAPP_WEB_HOME. Если обе переменные установленные, то будет использоваться MYAPP_HOME.
-Log
use Catalyst '-Log=warn,fatal,error';
| Определяет-запятыми список журнала уровней.
-Stats
Включает сбор статистики и отчетности. Вы также можете этот параметр использовать с окружающей средой CATALYST_STATS или <MYAPP> _STATS. В окружающей среде настройки приложения с <MYAPP> _STATS имеют наивысший приоритет.
так же:
use Catalyst qw/-Stats=1/
| METHODS ^
INFORMATION ABOUT THE CURRENT REQUEST
www.x0.org.ua
Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?f=14&t=16847.
размещено: 2009-08-11,
последнее обновление: 2010-05-15,
автор: ProFTP
|
|
|
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту
Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis
Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
|
Статистика сайта
|
Сейчас на сайте находится: 48 чел.
|
За последние 30 мин было: 194 человек
|
За сегодня было 2823 показов, 700 уникальных IP
|
|
|
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
|
|
|
Комментарии пользователей [3 шт.]