<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<p>Советую новость оформить об нем на том же opennet.ru и на
linux.org.ru <br>
</p>
<br>
<div class="moz-cite-prefix">On 12/19/2016 03:38 PM, Konstantin S.
Uvarin via Moscow-pm wrote:<br>
</div>
<blockquote
cite="mid:CAJj2qW=19V4C1aoqWzycP8uPfcYGMDPHOJ_ztR5i0DrUe4wcMw@mail.gmail.com"
type="cite">
<div dir="ltr">
<div class="gmail_default"
style="font-family:monospace,monospace">
<div class="gmail_default"
style="font-family:monospace,monospace">Приветствую.<br>
<br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"> Выпустил Neaf 0.14
c экспериментальными hooks:<br>
<br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"> * hook ставится на
путь+метод, при этом можно указать exclude (т.е. пути, к
которым применяться НЕ будет)<br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"> * фазы, в которые
можно воткнуться: <br>
- pre_logic - после роутинга, но до выполнения основного
хэндлера (+ прерывание путём die);<br>
- pre_content - после хэндлера;<br>
- pre_reply - перед отправкой заголовков клиенту
(выполнение в обратном порядке);<br>
- pre_cleanup - перед уничтожением объекта запроса,
после отложенных операций (выполнение в обратном порядке);<br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"> - возможно,
будут добавлены ещё. как минимум, pre_render, который
отрабатывает, ТОЛЬКО если собираемся применять
шаблон/сериализатор. Ну и pre-route надо запихнуть в ту же
схему, не дело двум велосипедам быть в одном фреймворке,
который и так велосипед.<br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"> * единственный
аргумент ВСЕХ хуков - объект request<br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"> * возвращаемое
значение принципиально игнорируется, для коммуникаций между
хуками есть $request->stash. Также начиная с pre_content
доступен хэш, который вернул хэндлер, под именем
$request->reply.<br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"> <br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"> Кроме этого,
добавлены зависящие от пути значения по умолчанию,
применяемые после успешного хэндлера, напр. MVC::<span
class="gmail-il">Neaf</span>->set_path_defaults( '/api'
=> { -view => 'JS' } );<br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"> У них, правда,
пока нет exclude.<br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"> <br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"> Кроме этого,
добавлен Dancer-подобный сахар в виде <br>
<br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"> use MVC::<span
class="gmail-il">Neaf</span> qw(:sugar);<br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"> get '/path' =>
sub { ... };<br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"> <span
class="gmail-il">neaf</span> error => 404 => sub {
... };<br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"> <span
class="gmail-il">neaf</span>->run;<br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"><br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"> Он тоже
экспериментальный.<br>
<br>
<a moz-do-not-send="true"
href="https://github.com/dallaylaen/perl-mvc-neaf/"
target="_blank">https://github.com/dallaylaen/<wbr>perl-mvc-<span
class="gmail-il">neaf</span>/</a><br>
<a moz-do-not-send="true"
href="https://metacpan.org/pod/MVC::Neaf" target="_blank">https://metacpan.org/pod/MVC::<wbr><span
class="gmail-il">Neaf</span></a><br>
<br>
</div>
<div class="gmail_default"
style="font-family:monospace,monospace"> Акжану
присуждается медаль в дисциплине "взятие на слабо", а если
серьёзно, то спасибо за классный challenge и ссылки :)</div>
</div>
<div class="gmail_extra"><br>
<br>
-- <br>
<div class="gmail_signature" data-smartmail="gmail_signature">
<div dir="ltr">
<div>
<div>
<div><font face="monospace,monospace">Konstantin S.
Uvarin<br>
</font></div>
<font face="monospace,monospace">jabber: see
<from><br>
</font></div>
<font face="monospace,monospace">skype: kuvarin<br>
</font></div>
<font face="monospace,monospace"><a moz-do-not-send="true"
href="http://github.com/dallaylaen" target="_blank">http://github.com/dallaylaen</a><br>
</font></div>
</div>
</div>
</div>
<br>
<fieldset class="mimeAttachmentHeader"></fieldset>
<br>
</blockquote>
<br>
<pre class="moz-signature" cols="72">--
</pre>
</body>
</html>