<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace">Приветствую.<br><br></div><div class="gmail_default" style="font-family:monospace,monospace">  1) До выполнения основного хендлера у нас бабблинг вполне себе прерывается. На дальнейших стадиях _пока_ не вижу смысла это делать. Мне кажется, это только к лишним взаимозависимостям между коллбэками приведёт. Там и так побочный эффект на побочном эффекте и побочным эффектом погоняет. <br></div><div class="gmail_default" style="font-family:monospace,monospace">  <br> 
 2) after_xxx появятся скоро, насчёт around пока не знаю. <br><br></div><div class="gmail_default" style="font-family:monospace,monospace">  Вообще хотелось бы получить хоть какую-то обратную связь от пользователей с реальными проектами, прежде чем с шашкой наголо дальше кидаться. Вряд ли на Нифе сразу тикетмастер или букинг напишут, где подобная сложная логика необходима.<br></div><div class="gmail_extra"><br><div class="gmail_quote">2016-12-19 22:09 GMT+02:00 Akzhan Abdulin <span dir="ltr"><<a href="mailto:akzhan.abdulin@gmail.com" target="_blank">akzhan.abdulin@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Идея hooks хоть и хороша, но <div><br></div><div>1) Полностью отсутствует нормальная схема прекращения обработки запроса (хук все сделал). die порождает warning и просто увеличивает цену обработки запроса. Хотя бы взяли идею event.stopPropagation() с JavaScript.</div><div><br></div><div>2) отсутствуют фазы after_xxx и around_xxx.</div></div><div class="gmail_extra"><br><div class="gmail_quote">19 декабря 2016 г., 14:38 пользователь Konstantin S. Uvarin <span dir="ltr"><<a href="mailto:khedin@gmail.com" target="_blank">khedin@gmail.com</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div class="m_4379259694129813380h5"><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><span><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="m_4379259694129813380m_-4615455661186733503m_6069589870767821280gmail-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="m_4379259694129813380m_-4615455661186733503m_6069589870767821280gmail-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="m_4379259694129813380m_-4615455661186733503m_6069589870767821280gmail-il">neaf</span> error => 404 => sub { ... };<br></div><div class="gmail_default" style="font-family:monospace,monospace">  <span class="m_4379259694129813380m_-4615455661186733503m_6069589870767821280gmail-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 href="https://github.com/dallaylaen/perl-mvc-neaf/" target="_blank">https://github.com/dallaylaen/<wbr>perl-mvc-<span class="m_4379259694129813380m_-4615455661186733503m_6069589870767821280gmail-il">neaf</span>/</a><br>  <a href="https://metacpan.org/pod/MVC::Neaf" target="_blank">https://metacpan.org/pod/MVC::<span class="m_4379259694129813380m_-4615455661186733503m_6069589870767821280gmail-il"><wbr>Neaf</span></a><br><br></div><div class="gmail_default" style="font-family:monospace,monospace">  Акжану присуждается медаль в дисциплине "взятие на слабо", а если серьёзно, то спасибо за классный challenge и ссылки :)</div></span></div><div class="gmail_extra"><br><span><br>-- <br><div class="m_4379259694129813380m_-4615455661186733503m_6069589870767821280gmail_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 href="http://github.com/dallaylaen" target="_blank">http://github.com/dallaylaen</a><br></font></div></div>
</span></div></div>
<br></div></div><span>______________________________<wbr>_________________<br>
Kiev-pm mailing list<br>
<a href="mailto:Kiev-pm@pm.org" target="_blank">Kiev-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/kiev-pm" rel="noreferrer" target="_blank">http://mail.pm.org/mailman/lis<wbr>tinfo/kiev-pm</a><br>
<br></span></blockquote></div><br></div>
<br>______________________________<wbr>_________________<br>
Kiev-pm mailing list<br>
<a href="mailto:Kiev-pm@pm.org" target="_blank">Kiev-pm@pm.org</a><br>
<a href="http://mail.pm.org/mailman/listinfo/kiev-pm" rel="noreferrer" target="_blank">http://mail.pm.org/mailman/lis<wbr>tinfo/kiev-pm</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br><div class="m_4379259694129813380gmail_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 href="http://github.com/dallaylaen" target="_blank">http://github.com/dallaylaen</a><br></font></div></div>
</div></div>