Не хватает фильтров, как минимум (в том же Mojo они тоже туповаты, каждый over перекрывает предыдущие, вместо расширения).
На досуге почитайте http://www.sinatrarb.com/intro.html 2 декабря 2016 г., 17:39 пользователь Konstantin S. Uvarin via Moscow-pm < [email protected]> написал: > Приветствую всех! > > Сегодня я бы хотел представить веб-фреймворк на перл 5 собственного > сочинения, Ниф (Not Even A Framework). Написан он больше для > самообразования, т.к. и так их как собак нерезаных, но мне кажется, в нём > есть некие здравые идеи. Суть такова: > > 1. Приложение разбивается на маленькие процедуры-хэндлеры, привязанные к > пути в URI (см. тж. https://metacpan.org/pod/Dancer ) > > 2. Хэндлер получает на вход объект запроса, из которого потом достаются > параметры, куки, заголовки и т.д. (см. тж. https://metacpan.org/pod/Kelp ) > > 3. Параметры и куки нельзя достать без валидации, например, при помощи > регулярного выражения: > > $req->param( foo => qr/\d+/ ); > > См. тж. perl -T > > В качестве альтернативы есть самовалидирующиеся формы на базе > Validator::LIVR или самописного каличного движка (но ЛИВР лучше). > > См. тж. https://metacpan.org/pod/Validator::LIVR и > https://metacpan.org/pod/Data::CGIForm > > 4. Хэндлер может вернуть ссылку на хэш с какими угодно параметрами, > которая затем передаётся в шаблонизатор для рендеринга. На данный момент > поддерживается Template::Toolkit и JSON/JSONP > > Также есть ограниченный набор ключей с минусом, которые используются для > управления самим фреймворком - -template, -status и т.п > > 5. Хэндлер может выбросить исключение: die 404 - легальный способ вернуть > настраиваемую страницу not found. Все нормальные исключения (не > трёхцифренные и не специальные объекты самого Neaf) трактуются как error > 500. > > 6. Один и тот же код может в неизменном виде запускаться как cgi, psgi и > под Apache2 + mod_perl (с некоторым бубном). Также поддерживается дебаг из > командной строки: > > perl myapp.pl --help > perl myapp.pl --list > > 7. Кроме этого есть поддержка статических страниц (не надо держать > отдельно нормальный веб-сервер, чтобы проверить CSS или логотип), сессий в > несколько недоделанном виде (планируется улучшение), отложенные действия, > выполняемые после запроса, ну и по мелочи ещё. > > Пример кода: > > use strict; > use warnings; > use MVC::Neaf; > > MVC::Neaf->route( "/" => sub { > my $req = shift; > > return { > -template => \'Hello, [% name %]!', > -type => 'text/plain', > name => $req->param( name => qr/\w+/, "Stranger" ), > }, > }); > > На каждую фичу есть небольшой пример, они же используются как > дополнительные смоук-тесты к 80% покрытию юнит-тестами. см. > https://github.com/dallaylaen/perl-mvc-neaf/tree/master/example > > Собственно фреймворк: > > https://metacpan.org/pod/MVC::Neaf > > Буду рад обратной связи, критике, багрепортам и запросам новых фич (см. > тж. https://github.com/dallaylaen/perl-mvc-neaf/blob/master/TODO ) > > С уважением, > > -- > Konstantin S. Uvarin > jabber: see <from> > skype: kuvarin > http://github.com/dallaylaen > > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org > >
-- Moscow.pm mailing list [email protected] | http://moscow.pm.org
