Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
  Socket сервер на FreeBSD.
  Создание программ на QT4/С++
  PerlQT4 (Использование С++ классов в Perl скриптах)
  CRUD Perl Web
  MVC Catalyst
  Zyxel Configuration
Очумелые Ручки
OpenBSD
Cisco


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

оценить статью:

Voronok, 2009-11-23 в 11:26:28

Интересная штука. А можно побольше и поподробнее про этот фрэймворк?

ProFTP, 2009-11-26 в 11:41:21

> Voronok
1) посмотри тут ОПИСАНИЕ в этой статье
там ссылки же есть...

2) посмотри тему на форуме http://forum.lissyara.su/viewtopic.php?f=14&t=16847&p=210582#p210582 , там другую часть документации переводят

ProFTP, 2009-11-26 в 11:49:14

> Voronok
и тут еще есть http://forum.lissyara.su/viewforum.php?f=17


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

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
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 33 чел.
За последние 30 мин было: 171 человек
За сегодня было
4845 показов,
1087 уникальных IP
 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0415 секунд
Из них PHP: 30%; SQL: 70%; Число SQL-запросов: 77 шт.
Исходный размер: 67782; Сжатая: 14117