<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Все статьи подряд / Zend Framework / Хабр]]></title>
    <link>https://habr.com/ru/hubs/zend_framework/articles/</link>
    <description><![CDATA[Zend Framework – свободный фреймворк для разработки веб-приложений]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Fri, 30 Oct 2026 12:13:54 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    
    <item>
      <title><![CDATA[Простой Telegram бот, который задаёт 1 вопрос]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/531790/</guid>
      <link>https://habr.com/ru/articles/531790/?utm_campaign=531790&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/623/61f/846/62361f846d74bfcfbe481582ca095e58.jpg" /><p>От задумки к реализации Telegram бота для противодействия спам регистрациям в группе. В качестве инструментов используется PHP и Laminas Framework.</p><p></p> <a href="https://habr.com/ru/articles/531790/?utm_campaign=531790&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 07 Dec 2020 20:20:01 GMT</pubDate>
      <dc:creator><![CDATA[northmule]]></dc:creator>
      
      <category><![CDATA[php]]></category><category><![CDATA[telegram]]></category><category><![CDATA[laminas]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[PHP-Дайджест № 171 (1 – 13 января 2020)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/483684/</guid>
      <link>https://habr.com/ru/articles/483684/?utm_campaign=483684&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<a href="https://habr.com/ru/post/483684/"><div style="text-align:center;"><img src="https://habrastorage.org/getpro/habr/post_images/5b8/a90/f8e/5b8a90f8e733d0c8d7c3df62018d73a2.jpg" width="600"></div></a><br>
<p>Свежая подборка со ссылками на новости и материалы. В выпуске: 4 свежих RFC из PHP Internals и интересные пул-реквесты в PHP 8, порция полезных инструментов, подкасты, стримы и многое другое.<br>
<br>
Приятного чтения!</p><br> <a href="https://habr.com/ru/articles/483684/?utm_campaign=483684&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше →</a>]]></description>
      
      <pubDate>Mon, 13 Jan 2020 00:15:15 GMT</pubDate>
      <dc:creator><![CDATA[pronskiy]]></dc:creator>
      
      <category><![CDATA[дайджест]]></category><category><![CDATA[php-дайджест]]></category><category><![CDATA[PHP]]></category><category><![CDATA[Symfony]]></category><category><![CDATA[Laravel]]></category><category><![CDATA[Zend]]></category><category><![CDATA[Laminas]]></category><category><![CDATA[PHP 7.4]]></category><category><![CDATA[PHP 8]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Самое интересное в PHP 8]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/oleg-bunin/articles/481092/</guid>
      <link>https://habr.com/ru/companies/oleg-bunin/articles/481092/?utm_campaign=481092&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[PHP 7.4 только-только объявлена stable, а нам уже подавай еще больше усовершенствований. И лучше всех о том, что ждет PHP, может рассказать Дмитрий Стогов — один из ведущих разработчиков Open Source PHP и, наверное, старейший активный контрибьютор.<br>
<br>
Все доклады Дмитрия только о тех технологиях и решениях, над которыми он работает лично. В лучших традициях Онтико под катом текстовая версия <a href="https://youtu.be/7UOWus-5yxg">рассказа</a> о самых интересных с точки зрения Дмитрия нововведениях PHP 8, которые могут открыть новые use-case-ы. В первую очередь JIT и FFI — не в ключе «потрясающих перспектив», а с подробностями реализации и подводными камнями.<br>
<br>
<div style="text-align:center;"><img src="https://habrastorage.org/webt/h9/o1/xd/h9o1xdb-wntc2xl0eipeb4bd7du.png" width="500"></div><br>
<i>Для справки:</i> Дмитрий Стогов познакомился с программированием в 1984, когда еще далеко не все из читателей появились на свет, и успел внести существенный вклад в развитие инструментов разработки, и PHP в частности (хоть Дмитрий повышает производительность PHP не специально для российских разработчиков, они <a href="https://habr.com/ru/company/oleg-bunin/blog/477426/">выразили</a> свою благодарность в виде Премии HighLoad++). Дмитрий автор Turck MMCache для PHP (eAccelerator), майнтейнер Zend OPcache, лидер проекта PHPNG, легшего в основу PHP 7, и лидер разработки JIT для PHP.<br> <a href="https://habr.com/ru/articles/481092/?utm_campaign=481092&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше →</a>]]></description>
      
      <pubDate>Thu, 19 Dec 2019 10:02:16 GMT</pubDate>
      <dc:creator><![CDATA[olegbunin (Конференции Олега Бунина (Онтико))]]></dc:creator>
      
      <category><![CDATA[php]]></category><category><![CDATA[php 8]]></category><category><![CDATA[jit]]></category><category><![CDATA[ffi]]></category><category><![CDATA[preloading]]></category><category><![CDATA[си]]></category><category><![CDATA[opcache]]></category><category><![CDATA[phprussia]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[PHP-Дайджест № 154 (9 – 21 апреля 2019)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/448880/</guid>
      <link>https://habr.com/ru/articles/448880/?utm_campaign=448880&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<a href="https://habr.com/ru/post/448880/"><div style="text-align:center;"><img src="https://habrastorage.org/webt/y3/1v/rd/y31vrdbiaxan6_dsbje3sqyghes.jpeg" width="800"></div></a><br>
<p>Свежая подборка со ссылками на новости и материалы. В выпуске: Zend Framework переходит под крыло Linux Foundation, новости из PHP Internals, порция полезных инструментов, и многое другое.<br>
<br>
Приятного чтения!</p><br> <a href="https://habr.com/ru/articles/448880/?utm_campaign=448880&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше →</a>]]></description>
      
      <pubDate>Sun, 21 Apr 2019 18:16:14 GMT</pubDate>
      <dc:creator><![CDATA[pronskiy]]></dc:creator>
      
      <category><![CDATA[дайджест]]></category><category><![CDATA[php-дайджест]]></category><category><![CDATA[PHP]]></category><category><![CDATA[Zend Framework]]></category><category><![CDATA[Laminas]]></category><category><![CDATA[Symfony]]></category><category><![CDATA[Laravel]]></category><category><![CDATA[Yii]]></category><category><![CDATA[PHP 8]]></category><category><![CDATA[PHP 7.4]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как мы сделали PHP 7 в два раза быстрее PHP 5. Часть 2: оптимизация байт-кода в PHP 7.1]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/oleg-bunin/articles/445512/</guid>
      <link>https://habr.com/ru/companies/oleg-bunin/articles/445512/?utm_campaign=445512&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[В <a href="https://habr.com/ru/company/oleg-bunin/blog/444508/">первой части</a> рассказа по мотивам <a href="https://www.youtube.com/watch?v=tHapNKpacSQ">выступления</a> <strong>Дмитрия Стогова</strong> из Zend Technologies на HighLoad++ мы разбирались во внутреннем устройстве PHP. Детально и из первых уст узнали, какие изменениях в базовых структурах данных позволили ускорить PHP 7 более чем в два раза. На этом можно было бы и остановиться, но уже в версии 7.1 разработчики пошли существенно дальше, так как идей по оптимизации у них было еще много. <br>
<br>
Накопленный опыт работы над JIT до семёрки теперь можно интерпретировать, смотря на результаты в 7.0 без JIT и на результаты HHVM с JIT. В PHP 7.1 было решено c JIT не работать, а опять обратиться к интерпретатору. Если раньше оптимизации касались интрепретатора, то в этой статье посмотрим на оптимизацию байт-кода, с использованием вывода типов, который реализовали для нашего JIT. <br>
<br>
<img src="https://habrastorage.org/webt/km/1d/cu/km1dcunb58tbgkftxkwegfktjto.png"><br>
<br>
Под катом Дмитрий Стогов покажет, как это все работает, на простом примере. <br> <a href="https://habr.com/ru/articles/445512/?utm_campaign=445512&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше →</a>]]></description>
      
      <pubDate>Wed, 27 Mar 2019 11:49:21 GMT</pubDate>
      <dc:creator><![CDATA[olegbunin (Конференции Олега Бунина (Онтико))]]></dc:creator>
      
      <category><![CDATA[php]]></category><category><![CDATA[php 7]]></category><category><![CDATA[highload++]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как мы сделали PHP 7 в два раза быстрее PHP 5. Часть 1: оптимизация структур данных]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/oleg-bunin/articles/444508/</guid>
      <link>https://habr.com/ru/companies/oleg-bunin/articles/444508/?utm_campaign=444508&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<a href="http://php.net/archive/2015.php#id2015-12-03-1">В декабре 2015</a> вышел PHP 7.0. Компании, которые перешли на «семерку» отметили, что увеличилась производительность, а нагрузка на сервера — уменьшилась. Первыми перешли на семерку Vebia и Etsy, а у нас Badoo, Авито и OLX. Для Badoo переход на семёрку обошелся в 1 млн. долларов экономии на серверах. Благодаря PHP 7 в OLX средняя нагрузка на сервер снизилась в 3 раза, повысилась эффективность и экономия ресурсов.<br/>
<br/>
<strong>Дмитрий Стогов</strong> из Zend Technologies на <a href="http://www.highload.ru/">HighLoad++</a> рассказал, благодаря чему повысилась производительность. В расшифровке: о внутреннем устройстве PHP, об идеях в основе версии 7.0, об изменениях в базовых структурах данных и алгоритмах, которые и определили успех.<br/>
<br/>
<em>Disclaimer: На март 2019 года </em><a href="https://w3techs.com/technologies/details/pl-php/5/all"><em>80% сайтов</em></a><em> работают на PHP, и </em><a href="https://w3techs.com/technologies/details/pl-php/all/all"><em>70% из них</em></a><em> — на PHP 5, хотя с 1 января 2019 </em><a href="http://php.net/supported-versions.php"><em>эта версия не поддерживается</em></a><em>. Доклад Дмитрия от 2016 года про принципы, благодаря которым произошел двукратный скачок производительности между PHP 5 и 7, — актуален и в марте 2019. Для половины сайтов — точно.</em><br/>
<div class="oembed"><div><div style="left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.2493%;"><iframe src="https://www.youtube.com/embed/tHapNKpacSQ?rel=0&amp;showinfo=1&amp;hl=en-US" style="border: 0; top: 0; left: 0; width: 100%; height: 100%; position: absolute;" allowfullscreen scrolling="no"></iframe></div></div></div> <a href="https://habr.com/ru/articles/444508/?utm_campaign=444508&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut"></a>]]></description>
      
      <pubDate>Wed, 20 Mar 2019 10:28:29 GMT</pubDate>
      <dc:creator><![CDATA[olegbunin (Конференции Олега Бунина (Онтико))]]></dc:creator>
      
      <category><![CDATA[php 7]]></category><category><![CDATA[highload++]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Зеев Сураски: Будущее Zend Engine и Zend Framework]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/426809/</guid>
      <link>https://habr.com/ru/articles/426809/?utm_campaign=426809&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<a href="https://habr.com/post/426809/"><div style="text-align:center;"><img src="https://habrastorage.org/webt/tl/1n/vj/tl1nvjfi3zob8khasud-jpyzjge.png"></div></a><br>
<br>
<i>В июне 2015 года было <a href="http://www.zend.com/en/resources/news-and-events/newsroom/press/3683_rogue-wave-software-acquires-enterprise-php-leader-zend-acquisition-broadens-enterprise-strength-across-top-five-development-languages">анонсировано</a> поглощение Zend, компании-разработчика ядра языка PHP, американской компанией Rogue Wave Software. В феврале 2016 года об уходе из Zend <a href="https://andigutmans.com/2016/02/24/starting-a-new-journey/">заявил</a> ее сооснователь и до 2015 исполнительный директор <a href="https://ru.wikipedia.org/wiki/%D0%93%D1%83%D1%82%D0%BC%D0%B0%D0%BD%D1%81,_%D0%AD%D0%BD%D0%B4%D0%B8">Энди Гутманс</a>.<br>
На этот раз второй из основателей Zend Technologies <a href="https://ru.wikipedia.org/wiki/%D0%A1%D1%83%D1%80%D0%B0%D1%81%D0%BA%D0%B8,_%D0%97%D0%B5%D0%B5%D0%B2">Зеев Сураски</a> в своем блоге поделился планами.</i><br> <a href="https://habr.com/ru/articles/426809/?utm_campaign=426809&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше →</a>]]></description>
      
      <pubDate>Wed, 17 Oct 2018 22:44:11 GMT</pubDate>
      <dc:creator><![CDATA[pronskiy]]></dc:creator>
      
      <category>php</category><category>zend engine</category><category>zend framework</category><category>php8</category><category>zend</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Краткий экскурс по основным моментам Zend Framework]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/426303/</guid>
      <link>https://habr.com/ru/articles/426303/?utm_campaign=426303&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Это просто фреймворк, или этот фреймворк олицетворяет собой гордость PHP-сообщества — его трудолюбивых разработчиков, так сказать, ключевой ингредиент? С россыпью конфигов… Предмет любви нашего ЯП, обладающий хорошим MVC, благодаря чему Zend Framework — самый лучший фреймворк на PHP.</p><br/>
<p>Здесь вы не найдёте ответа на этот вопрос, зато узнаете про ServiceManager и ModuleManager.</p><br/>
<p><img src="https://habrastorage.org/webt/bo/av/op/boavopcannwnn57d0zrazhxpmla.jpeg" alt="Бегите, глупцы!"/></p> <a href="https://habr.com/ru/articles/426303/?utm_campaign=426303&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sat, 13 Oct 2018 17:52:19 GMT</pubDate>
      <dc:creator><![CDATA[melodyn]]></dc:creator>
      
      <category><![CDATA[zend framework 2]]></category><category><![CDATA[php]]></category><category><![CDATA[основы]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Реализация стейтмашины на Zend Framework3+Doctine2]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/413701/</guid>
      <link>https://habr.com/ru/articles/413701/?utm_campaign=413701&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<h1>Введение: зачем нужна стейтмашина</h1><br/>
<p>В приложениях часто необходимо ограничивать доступ к тем или иным действиям над объектом. Для этого используют RBAC-модули, которые решают задачу ограничения доступа в зависимости от прав пользователя. Остается нерешенной задача управления действиями в зависимости от состояния объекта. Эта задача хорошо решается с помощью конечного автомата или state machine. Удобная стейтмашина позволяет не только собрать в одном месте все правила переходов между состояниями объекта, но и наводит некоторый порядок в коде отделяя правила переходов, проверки условия и обрабочкики и подчиняя их общим правилам.</p><br/>
<p>Хочу поделиться реализацией стейтмашины под Zend Framework 3 с использованием Doctrine 2<br/>
для работы с базой данных. Сам проект можно найти <a href="https://github.com/kota-shade/zf-state-machine">по ссылке</a>.</p><br/>
<p>А здесь я хочу поделиться основными заложенными принципами.</p> <a href="https://habr.com/ru/articles/413701/?utm_campaign=413701&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sat, 09 Jun 2018 08:34:04 GMT</pubDate>
      <dc:creator><![CDATA[shadow00]]></dc:creator>
      
      <category><![CDATA[state machine]]></category><category><![CDATA[zend framework 3]]></category><category><![CDATA[doctrine2]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Обзор заготовки web-приложения на Zend Framework 3]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/346486/</guid>
      <link>https://habr.com/ru/articles/346486/?utm_campaign=346486&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<blockquote>Статья является обзорной и не несет в себе никаких how-to-туториалов. Если вы случайно "напоролись" на неё в сети, то предупреждаю сразу, что она не научит вас использовать Zend Framework 3 (далее ZF3).</blockquote><p><img src="https://habrastorage.org/webt/xf/9h/me/xf9hmewmz363lmpliyo_kemvq6e.png" alt="Cover"></p><br>
<p>Привет, читатель! Решил я анонсировать свое детище на замечательном ресурсе Хабрахабр. Я не являюсь постоянным читателем, но понимаю, что основная часть людей ищущих что-то интересное натыкается непременно сюда. Пришел сюда спецом за трафиком, ибо нет сил наблюдать больше смерть своих творений.</p> <a href="https://habr.com/ru/articles/346486/?utm_campaign=346486&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше →</a>]]></description>
      
      <pubDate>Fri, 12 Jan 2018 05:44:58 GMT</pubDate>
      <dc:creator><![CDATA[BuPy7]]></dc:creator>
      
      <category><![CDATA[php]]></category><category><![CDATA[open source]]></category><category><![CDATA[zend framework 3]]></category><category><![CDATA[overview]]></category><category><![CDATA[framework]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Готовимся к собеседованию по PHP: Всё, что вы хотели узнать об интерфейсах, совместимости сигнатур и не побоялись узнать]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/328890/</guid>
      <link>https://habr.com/ru/articles/328890/?utm_campaign=328890&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/files/9b9/288/4f0/9b92884f0c7c49599d874f02890c19d3.jpg" alt="image" align="left"/>Интерфейсы, впервые появившись в PHP 5, давно уже заняли прочное место в объектно-ориентированной (или всё-таки правильнее «класс-ориентированной»?) части языка.<br/>
<br/>
Казалось бы — что может быть проще интерфейса? &quot;<i>Как бы класс, но и не класс, нельзя создать экземпляр, скорее контракт для будущих классов, содержит в себе заголовки публичных методов</i>&quot; — не правда ли, именно такими словами вы чаще всего отвечаете на собеседовании на дежурный вопрос о том, что такое интерфейс?<br/>
<br/>
Однако не всё так просто, как может показаться начинающему программисту на PHP. Привычные аналогии не работают, руководство по языку вводит вас в заблуждение, в коде таятся неожиданные «подводные камни»…<br/>
<br/>
Три предыдущие части:<br/>
<br/>
<ul>
<li><a href="https://habrahabr.ru/post/259627/">Готовимся к собеседованию по PHP: ключевое слово «static»</a></li>
<li><a href="https://habrahabr.ru/post/259991/">Готовимся к собеседованию по PHP: псевдотип «callable»</a></li>
<li><a href="https://habrahabr.ru/post/324934/">Готовимся к собеседованию по PHP: Всё об итерации и немного про псевдотип «iterable»</a></li>
</ul> <a href="https://habr.com/ru/articles/328890/?utm_campaign=328890&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Проверьте себя: всё ли вы знаете об интерфейсах в PHP?</a>]]></description>
      
      <pubDate>Wed, 17 May 2017 14:57:14 GMT</pubDate>
      <dc:creator><![CDATA[AlexLeonov]]></dc:creator>
      
      <category><![CDATA[php]]></category><category><![CDATA[ооп]]></category><category><![CDATA[интерфейсы]]></category><category><![CDATA[интерфейс]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Организация большого проекта на Zend Framework 2/3]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/englishdom/articles/328550/</guid>
      <link>https://habr.com/ru/companies/englishdom/articles/328550/?utm_campaign=328550&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Идеи разбиения больших проектов на мелкие части — так называемая <b>микросервисная архитектура</b> — получает последнее время все большее распространение среди разработчиков. Это хороший подход для организации кода, и разработки в целом, но что делать тем, у кого кодовая база начала складываться задолго до пика популярности микросервисной архитектуры? Этот же вопрос можно отнести и к тем, кому по нагрузкам комфортно на одном мощном сервере, да и время на переписывание кода просто нет. Говоря о собственном опыте: сейчас мы внедряем микросервисы, но изначально наш монолит проектировали «модульным», так, чтобы его было легко поддерживать, невзирая на объем. Кому интересно, как мы организовываем код — добро пожаловать под кат.<br/>
 <a href="https://habr.com/ru/articles/328550/?utm_campaign=328550&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Tue, 16 May 2017 06:48:46 GMT</pubDate>
      <dc:creator><![CDATA[EnglishDom (EnglishDom)]]></dc:creator>
      
      <category><![CDATA[Zend Framework]]></category><category><![CDATA[EnglishDom]]></category><category><![CDATA[php]]></category><category><![CDATA[DTO]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[«Runn Me!» — говорит нам очередной фреймворк* на PHP. А слышится «Throw Me!». Часть 2]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/328080/</guid>
      <link>https://habr.com/ru/articles/328080/?utm_campaign=328080&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<i>* вообще говоря это пока еще не фреймворк, а просто набор библиотек, фреймворком он станет чуть позже</i><br/>
<br/>
<div style="text-align:center;"><img src="https://habrastorage.org/web/ca2/118/15c/ca211815cfd04ad5a2cb1b380a28c487.jpg" /></div><br/>
Не прошло и недели с момента «безумного успеха» (тут мнения немного расходятся, конечно...) первой части нашего повествования, как пришло время выпустить вторую.<br/>
<br/>
Сегодня мы продолжаем путешествие в бездонную глубину библиотеки runn/core будущего фреймворка «Runn Me!». Под катом нам встретятся следующие обитатели бездны:<br/>
<br/>
<ul>
<li>Концепция «мультиисключения» и ее реализация в библиотеке</li>
<li>Понятие объекта с внутренней валидацией и эталонная реализация такого объекта</li>
<li>Немного заглянем в мир валидаторов и санитайзеров (подробный рассказ о них будет позже)</li>
<li>Рассмотрим реализацию объекта с обязательными полями</li>
</ul><br/>
 <a href="https://habr.com/ru/articles/328080/?utm_campaign=328080&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Вперед!</a>]]></description>
      
      <pubDate>Fri, 05 May 2017 14:28:23 GMT</pubDate>
      <dc:creator><![CDATA[AlexLeonov]]></dc:creator>
      
      <category><![CDATA[php]]></category><category><![CDATA[php 7]]></category><category><![CDATA[framework]]></category><category><![CDATA[library]]></category><category><![CDATA[lgpl]]></category><category><![CDATA[composer]]></category><category><![CDATA[github]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Уточка говорит «кря-кря», коровка говорит «му-му», «Runn Me!» — говорит нам очередной фреймворк* на PHP. Часть 1]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/326960/</guid>
      <link>https://habr.com/ru/articles/326960/?utm_campaign=326960&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[«О нет!», воскликнет читатель, утомлённый разными мини-микро-слим-фреймворками и QueryBuilder-ами и будет прав.<br/>
<br/>
Нет ничего скучнее, чем очередной фреймворк на PHP. Разве что «принципиально новая» CMS <s>или новый дейтинг</s>.<br/>
<br/>
<img src="https://habrastorage.org/files/170/152/b2f/170152b2fa2d4ffab43fb6b1af339435.PNG"/><br/>
<br/>
Так зачем же я с упорством, достойным лучшего применения, шагаю по неудобным подводным камням и выставляю на <s>потеху публике</s> суд товарищей своё творение? Заранее зная, что гнев критиков, как мощное цунами обрушится на этот пост и похоронит его на самом днище Хабра?<br/>
<br/>
Не знаю. Как не знал в своё время Колумб, зачем он отплывает от уютных берегов Испании. Надеялся ли он найти путь в Индию? Конечно да. Но не знал точно — доплывёт ли? <br/>
<br/>
Видимо и у программистов на PHP, к которым я вот уже 13 лет себя причисляю, есть такая же внутренняя потребность — выставлять свой код и зажмуривать глаза, ожидая реакции коллег.<br/>
<br/>
Что вас ждет под катом?<br/>
<br/>
<ul>
<li>Открытый исходный код, лицензия LGPL</li>
<li>Код, полностью совместимый с PHP 7.0-7.2</li>
<li>100% покрытие юнит-тестами</li>
<li>Библиотеки, проверенные временем в реальных проектах (и только проклятая прокрастинация мешала мне опубликовать их ранее!)</li>
</ul><br/>
Ну и, разумеется, история изобретения очередного <s>велосипеда на костыльном приводе</s> фреймворка*!<br/>
<br/>
<i>* вообще говоря это пока еще не фреймворк, а просто набор библиотек, фреймворком он станет чуть позже</i><br/>
<br/>
 <a href="https://habr.com/ru/articles/326960/?utm_campaign=326960&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Вперед!</a>]]></description>
      
      <pubDate>Mon, 01 May 2017 12:28:14 GMT</pubDate>
      <dc:creator><![CDATA[AlexLeonov]]></dc:creator>
      
      <category><![CDATA[php]]></category><category><![CDATA[php 7]]></category><category><![CDATA[framework]]></category><category><![CDATA[library]]></category><category><![CDATA[lgpl]]></category><category><![CDATA[composer]]></category><category><![CDATA[github]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Держите данные под контролем]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/306452/</guid>
      <link>https://habr.com/ru/articles/306452/?utm_campaign=306452&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Не секрет, что пользовательским данным доверять нельзя. Поэтому однажды человек и придумал валидацию данных. Ну а я, интереса ради и пользы для, написал свою реализацию валидатора на PHP.<br/>
 <a href="https://habr.com/ru/articles/306452/?utm_campaign=306452&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Tue, 26 Jul 2016 14:19:15 GMT</pubDate>
      <dc:creator><![CDATA[franzose]]></dc:creator>
      
      <category><![CDATA[валидация данных]]></category><category><![CDATA[php]]></category><category><![CDATA[laravel]]></category><category><![CDATA[symfony]]></category><category><![CDATA[yii]]></category><category><![CDATA[валидатор]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Обновление PHP до 7.0.6 может «сломать» ваш код]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/283302/</guid>
      <link>https://habr.com/ru/articles/283302/?utm_campaign=283302&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Внимание! Будьте осторожны при обновлении PHP до версии 7.0.6! В этой версии был исправлено несколько важных багов, на которые мог неявно полагаться ваш код или код вашего фреймворка.<br/>
<br/>
<img src="https://habrastorage.org/files/55a/a91/ca3/55aa91ca36934377b2482084574ce71d.jpg" alt="PHP bugs"/><br/>
<br/>
 <a href="https://habr.com/ru/articles/283302/?utm_campaign=283302&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Под катом тестовый пример кода, описание изменений и рекомендации, что же делать</a>]]></description>
      
      <pubDate>Wed, 11 May 2016 07:39:51 GMT</pubDate>
      <dc:creator><![CDATA[AlexLeonov]]></dc:creator>
      
      <category><![CDATA[php]]></category><category><![CDATA[php7]]></category><category><![CDATA[bugs]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Мультиисключение или Хочу поделиться одним интересным архитектурным приемом]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/279501/</guid>
      <link>https://habr.com/ru/articles/279501/?utm_campaign=279501&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Мне никогда не нравилась в фреймворках на PHP работа с ошибками. И даже употребление этого слова не нравилось. Чтобы сразу уточнить — я не про фатальные ошибки, не про error_reporting, я про то, что называют ошибками валидации. То в моделях, то в формах — это уж от фреймворка зависит.<br/>
<br/>
Вы только гляньте. Вот например Yii и Yii2, получение ошибок валидации модели:<br/>
<pre><code class="php">$errors = $model-&gt;getErrors();
</code></pre><br/>
Symfony, ошибки формы:<br/>
<pre><code class="php">$errors = $form-&gt;getErrors();
</code></pre><br/>
Активно рекламирующийся Pixie (давненько про него ничего не было):<br/>
<pre><code class="php">$result = $validator-&gt;validate($data);
$errors = $result-&gt;errors();
</code></pre><br/>
<br/>
Что тут не так?<br/>
Да всё. Всё не так. Весь этот код очень дурно пахнет, он пахнет временами PHP4, спагетти-архитектурой и диким смешением понятий.<br/>
<br/>
Что же делать?<br/>
<br/>
 <a href="https://habr.com/ru/articles/279501/?utm_campaign=279501&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 17 Mar 2016 09:32:51 GMT</pubDate>
      <dc:creator><![CDATA[AlexLeonov]]></dc:creator>
      
      <category><![CDATA[php]]></category><category><![CDATA[архитектура]]></category><category><![CDATA[паттерны]]></category><category><![CDATA[исключения]]></category><category><![CDATA[мультиисключение]]></category><category><![CDATA[exception]]></category><category><![CDATA[multiexception]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Приобретение Zend пока еще ничего не значит]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/269125/</guid>
      <link>https://habr.com/ru/articles/269125/?utm_campaign=269125&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<em>Прим. переводчика: Осталась незамеченной новость о покупке компании Zend компанией<br/>
<a href="https://en.wikipedia.org/wiki/Rogue_Wave_Software">RogueWave</a>. По крайней мере, не нашел упоминаний на хабре, только одна строчка в <a href="http://habrahabr.ru/company/zfort/blog/269039/">PHP-Дайджесте</a>. Представляю Вашему вниманию перевод <a href="http://ctankersley.com/2015/10/06/zends-acquisition-doesnt-matter/"> статьи Chris Tankersley</a> об этом событии.<br/>
</em><br/>
Действительно, заголовок выглядит грубовато. Сегодня было анонсировано что <a href="https://www.linkedin.com/pulse/big-news-enterprise-php-andi-gutmans">RogueWave Software приобрела Zend</a> и теперь может распоряжаться всем стеком LAMP, которым пользуются многие enterprise пользователи.<br/>
<br/>
Zend является основой PHP сообщества. С его основателями Andi Gutmans Zeev Suraski, работающими над Zend Engine(вещью, которая превращает весь наш PHP код во что-то полезное). И набором ПО, включая Zend Framework, Zend Server и Zend Studio.<br/>
<br/>
Если взглянуть на RogueWave, то кажется, что Zend будет хорошим дополнением к тому, что RogueWave уже предлагает. Вроде бы, все должны быть довольны.<br/>
<br/>
Но не будем прекращать твитерный анализ. И эта статья включает в себя не только поздравления, но и предсказания возможных будущих проблем PHP. Вот что, я думаю, может произойти.<br/>
 <a href="https://habr.com/ru/articles/269125/?utm_campaign=269125&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 19 Oct 2015 23:30:44 GMT</pubDate>
      <dc:creator><![CDATA[antonshell]]></dc:creator>
      
      <category><![CDATA[php]]></category><category><![CDATA[zend framework]]></category><category><![CDATA[zend]]></category><category><![CDATA[RogueWave]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[ZF2 + Blitz templates]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/268191/</guid>
      <link>https://habr.com/ru/articles/268191/?utm_campaign=268191&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Здравствуйте, разлюбезные мои хабровчане. А ежели кто из вас веб-разработкой на PHP занимается, то и вообще добро пожаловать. Я тут давеча стал смотреть на разные фреймворки… Развелось их у нас в ПеХаПе — страсть. Яблоку негде упасть, как говорят блондинки.<br/>
<br/>
<div style="text-align:center;"><img src="https://habrastorage.org/files/766/5aa/c06/7665aac064a24ac69b736a00bd4fcbc3.jpg" /></div><br/>
 <a href="https://habr.com/ru/articles/268191/?utm_campaign=268191&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sun, 04 Oct 2015 19:14:14 GMT</pubDate>
      <dc:creator><![CDATA[crocodile2u]]></dc:creator>
      
      <category><![CDATA[PHP]]></category><category><![CDATA[ZF2]]></category><category><![CDATA[Blitz]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[DevConf::PHP уже в эту пятницу — программа сформирована, в кулуарах расскажем как переносили сайт конференции на Laravel 5]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/devconf/articles/260347/</guid>
      <link>https://habr.com/ru/companies/devconf/articles/260347/?utm_campaign=260347&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<b>Релиз PHP7 — что нас ждет в октябре 2015</b><br/>
<br/>
<img align="right" src="https://habrastorage.org/getpro/habr/post_images/00e/736/d2e/00e736d2eac5816c733882a8f6d4b54f.jpg" alt="image"/>Дмитрий Стогов — Лидер проекта PHPNG и один из основных разработчиков PHP; ведущий инженер в <a href="http://www.zend.com/">Zend Technologies</a>.<br/>
<br/>
PHPNG успешно добрался до основной ветки PHP, и релиз PHP7 уже не за горами. Помимо производительности, появилось множество нововведений призванных сделать PHP более пригодным для написания больших проектов и избавиться от «детских болезней». Помимо несомненных плюсов, новшества несут головную боль связанную с переходом на новую версию. Доклад содержит обзор основных нововведений и некоторые рецепты по портированию.<br/>
<br/>
<a href="http://devconf.ru/ru/schedule#php"><b>Полная программа секции PHP</b></a><br/>
 <a href="https://habr.com/ru/articles/260347/?utm_campaign=260347&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Mon, 15 Jun 2015 15:57:49 GMT</pubDate>
      <dc:creator><![CDATA[phpclub (DevConf)]]></dc:creator>
      
      <category><![CDATA[php7]]></category><category><![CDATA[php]]></category><category><![CDATA[zend]]></category><category><![CDATA[highload]]></category><category><![CDATA[laravel]]></category><category><![CDATA[badoo]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Взгляды на Zend PHP Certification]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/259765/</guid>
      <link>https://habr.com/ru/articles/259765/?utm_campaign=259765&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[О том, что такое Zend Certified PHP Engineer (ZCE) и как к нему готовиться было достаточно статей. Я опишу свое мнение о ZCE (PHP 5.5) и свой процесс подготовки за неделю (с учетом моего пятилетнего опыта практической разработки).<br/>
<br/>
<h4>Взгляды на ZCE</h4><br/>
Сама по себе сертификация, в общем и целом (за исключением нескольких вопросов), проверяет, насколько усвоенной оказалась официальная документация PHP. Может попасться пару практических вопросов, а также вопросы на знание паттернов (мне попался про Registry и его применимость), что немного радует.<br/>
 <a href="https://habr.com/ru/articles/259765/?utm_campaign=259765&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Sun, 07 Jun 2015 20:48:56 GMT</pubDate>
      <dc:creator><![CDATA[unibyte]]></dc:creator>
      
      <category><![CDATA[сертификация]]></category><category><![CDATA[zce]]></category><category><![CDATA[zend]]></category><category><![CDATA[zend certified engineer]]></category><category><![CDATA[php]]></category><category><![CDATA[php5.5]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Не мамонт ли Вы? (пятничный тест; который ложь, да в ней намек)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/258567/</guid>
      <link>https://habr.com/ru/articles/258567/?utm_campaign=258567&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[PHP развивается стремительно. И сам язык, и его реализация, и, особенно, сообщество. PHP перестаёт быть языком для быстрого клепания сайтиков и всё больше движется в сторону языка общего назначения, хотя путь этот будет долог — слишком много врожденных недостатков тянется с доисторических времён.<br/>
<br/>
Как грибы растут стандарты, фреймворки, развивается и становится всё слаще синтаксис, растут разнообразные инструменты.<br/>
<br/>
И это здорово!<br/>
<br/>
Не совсем здорово то, что мы с вами, обычные разработчики, в массе своей всё больше отстаём от стремительного потока. История знает аналогичный пример — мамонты тоже отстали от стремительно меняющейся среды. И вымерли. Ну, или, по другой гипотезе — были съедены своими конкурентами за экологическую нишу — людьми. Неважно. Конец бедных гигантов в любом случае был печален.<br/>
<br/>
<img src="https://habrastorage.org/files/9bd/46f/014/9bd46f0148804cd6bc15680dfdd11815.jpg" alt="image"/><br/>
<br/>
Попробуйте пройти несложный тест и определить — не мамонт ли Вы в мире PHP? Не грозит ли Вам, как специалисту, вымирание в ближайшее время?<br/>
<br/>
Тест, разумеется, пятничный и шуточный. Но в нём всё-таки есть доля истины.<br/>
 <a href="https://habr.com/ru/articles/258567/?utm_campaign=258567&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Проверить степень своего оволосения и размер бивней</a>]]></description>
      
      <pubDate>Fri, 22 May 2015 15:18:33 GMT</pubDate>
      <dc:creator><![CDATA[AlexLeonov]]></dc:creator>
      
      <category><![CDATA[php]]></category><category><![CDATA[пятница]]></category><category><![CDATA[фреймворки php]]></category><category><![CDATA[dba]]></category><category><![CDATA[юмор]]></category><category><![CDATA[саморазвитие]]></category><category><![CDATA[самомотивация]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Zend Certification. Не так страшен черт]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/252199/</guid>
      <link>https://habr.com/ru/articles/252199/?utm_campaign=252199&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Хотелось бы поделиться с уважаемым сообществом своим опытом получения заветного Zend сертификата.<br/>
<br/>
Ни для кого не секрет, что к многочисленным сертификациям, и к ZCPE (Zend Certified PHP Engineer) в частности, все относятся по-разному: кто-то коллекционирует их и развешивает на стенках для самолюбования, кто-то считает пустой тратой времени и денег.<br/>
 <a href="https://habr.com/ru/articles/252199/?utm_campaign=252199&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Wed, 04 Mar 2015 15:24:35 GMT</pubDate>
      <dc:creator><![CDATA[GinoPane]]></dc:creator>
      
      <category><![CDATA[zend]]></category><category><![CDATA[zcpe]]></category><category><![CDATA[php]]></category><category><![CDATA[certification]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Анонсирован Zend Framework 3 Roadmap]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/248609/</guid>
      <link>https://habr.com/ru/articles/248609/?utm_campaign=248609&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/post_images/2ac/166/d16/2ac166d161b15cfd04809997b56dc839.png" alt="image"/>Обсуждение идей и предложений для Zend Framework 3 идет <a href="http://zend-framework-community.634137.n4.nabble.com/Starting-the-3-0-branch-td4660130.html">достаточно давно</a>, и вот наконец Zend решились на <a href="http://framework.zend.com/blog/announcing-the-zend-framework-3-roadmap.html">анонс новой версии фреймворка</a>.<br/>
<br/>
Zend Framework 3 будет эволюцией ZF2, с фокусом на три главных момента — простоту, повторное использование кода и производительность.<br/>
<br/>
В первоочередные планы входит:<br/>
<ul>
<li>выделение компонентов фреймворка в индивидуальные, версионируемые проекты (привет, Symfony!);</li>
<li>особый упор будет сделан на HTTP сообщения, которые будут приведены в соответствие с <a href="https://github.com/php-fig/fig-standards/blob/master/proposed/http-message.md">PSR-7</a>;</li>
<li>существующий full stack MVC фреймворк будет обновлен и начнет зависеть от новых независимых компонентов для повторного использования и упрощения. ZF2 MVC проекты можно будет с минимальными усилиями перенести на новую версию, для чего подготовят гайд по миграции;</li>
<li>использование концепции <a href="https://mwop.net/blog/2015-01-08-on-http-middleware-and-psr-7.html">middleware</a>, знакомой многим по Ruby / Python, а так же PHP-фреймворкам Slim Framework и StackPHP, в качестве более легкой альтернативы энтерпрайз-стеку фреймворка MVC (<a href="https://github.com/phly/conduit">пример того, о чем идет речь</a>);</li>
<li>возможность использования Apigility в качестве middleware;</li>
<li>оптимизация под PHP 7, при этом будет поддерживаться PHP начиная с версии 5.5;</li>
</ul> <a href="https://habr.com/ru/articles/248609/?utm_campaign=248609&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 22 Jan 2015 20:38:13 GMT</pubDate>
      <dc:creator><![CDATA[HotWaterMusic]]></dc:creator>
      
      <category><![CDATA[zend framework]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Zend Framework 2: Service Manager]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/241471/</guid>
      <link>https://habr.com/ru/articles/241471/?utm_campaign=241471&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<h4>Service Manager (SM, CM) в ZF2.</h4><br/>
Service Manager — это один из ключевых компонентов Zend Framework 2, который существенно облегчает жизнь разрабочика избавляя его от дублирования кода и рутинных операций по созданию и настройки сервисов, позволяя их конфигурировать на максимально высоком уровне. СМ, по своей натуре, является реестром сервисов, основная задача которого — создание и хранение сервисов. Можно сказать, СМ является очень продвинутой версий компонента Zend_Registry из Zend Framework 1.<br/>
СМ реализует паттерн Service Locator. Во многих частях приложения (например, в AbstractActionController) можно встретить функции getServiceLocator(), которые возвращают класс Zend\ServiceManager\ServiceManager. Такое несоответствие названия метода и возвращаемого типа легко объясняется тем, что getServiceLocator() возвращает объект, реализующий интерфейс ServiceLocatorInterface:<br/>
 <a href="https://habr.com/ru/articles/241471/?utm_campaign=241471&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Fri, 24 Oct 2014 17:25:32 GMT</pubDate>
      <dc:creator><![CDATA[mariner]]></dc:creator>
      
      <category><![CDATA[php zend_framework service_manager]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Подводные камни при системном тестировании модулей под Magento]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/215025/</guid>
      <link>https://habr.com/ru/articles/215025/?utm_campaign=215025&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Три предыдущих года я работал тестировщиком-мануальщиком в компании, которая очень успешно разрабатывает модули под <b>Magento</b>. За этот период я смог накопить достаточно большой список различных подводных камней, о которых тестировщику (да и программисту) никогда нельзя забывать. <br/>
Честно говоря, это не какие-то никому не известные «подводные камни», о которых никто не знает, или о которые модуль в боевых условиях никогда не споткнётся. Это скорее всем известные фичи и места самой <b>Magento</b>, в взаимодействии модуля с которыми всплывает очень много, кхе-кхе, багов. Причём баги эти очень даже критичны. <br/>
<img src="https://habrastorage.org/getpro/habr/post_images/abd/067/475/abd06747580bf5a401d1dd833b36f79e.jpg" height="200"/><br/>
 <a href="https://habr.com/ru/articles/215025/?utm_campaign=215025&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Fri, 07 Mar 2014 14:35:17 GMT</pubDate>
      <dc:creator><![CDATA[stanislav_golodov]]></dc:creator>
      
      <category><![CDATA[magento]]></category><category><![CDATA[тестирование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Хелпер объединяющий скрипты и стили в один файл для старичка ZF1]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/212897/</guid>
      <link>https://habr.com/ru/articles/212897/?utm_campaign=212897&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Если вы хотите для множества добавленных скриптов:<br/>
<pre><code class="php">$this-&gt;view-&gt;headScript()-&gt;appendFile('/static/js/script1.js');
$this-&gt;view-&gt;headScript()-&gt;appendFile('/static/js/script2.js');
$this-&gt;view-&gt;headScript()-&gt;appendFile('/static/js/script3.js');
</code></pre><br/>
вместо этого:<br/>
<pre><code class="html">&lt;script type=&quot;text/javascript&quot; src=&quot;/static/js/script1.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/static/js/script2.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;/static/js/script3.js&quot;&gt;&lt;/script&gt;
</code></pre><br/>
получить вот это:<br/>
<pre><code class="html">&lt;script type=&quot;text/javascript&quot; src=&quot;/static/cache/bff149a0b87f5b0e00d9dd364e9ddaa0.js&quot;&gt;&lt;/script&gt;
</code></pre><br/>
тогда эта статья для вас.<br/>
 <a href="https://habr.com/ru/articles/212897/?utm_campaign=212897&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Mon, 17 Feb 2014 11:25:50 GMT</pubDate>
      <dc:creator><![CDATA[denis-isaev]]></dc:creator>
      
      <category><![CDATA[zend framework]]></category><category><![CDATA[zf1]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[RESTful Api используя Zend framework 2]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/199502/</guid>
      <link>https://habr.com/ru/articles/199502/?utm_campaign=199502&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<h4>Небольшой гайд по созданию простейшего RESTful api с помощью Zend framework 2 (далее zf2).</h4><br/>
Нам потребуется zf2 v2.3@dev, а так же Doctrine 2 ORM.<br/>
<br/>
Итак, начнем с создания структуры директорий нашего api:<br/>
 <br/>
<pre><code class="bash">mkdir -pv zf2-api/{config/autoload,public,module/v1/{config,src/v1/{Controller,Service,Entities}}}</code></pre><br/>
<br/>
Загружаем композер<br/>
 <pre><code class="bash">curl -sS https://getcomposer.org/installer | php</code></pre><br/>
Так же нам потребуется создать composer.json с такими зависимостями и установить их.<br/>
<pre><code class="css">&quot;require&quot;: {
        &quot;php&quot;: &quot;&gt;=5.4&quot;,
        &quot;zendframework/zendframework&quot;: &quot;2.*@dev&quot;,
        &quot;doctrine/doctrine-orm-module&quot; :&quot;0.*&quot;
    }
</code></pre><br/>
 <a href="https://habr.com/ru/articles/199502/?utm_campaign=199502&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Tue, 29 Oct 2013 09:39:25 GMT</pubDate>
      <dc:creator><![CDATA[cawakharkov]]></dc:creator>
      
      <category><![CDATA[api]]></category><category><![CDATA[php]]></category><category><![CDATA[zend framework 2]]></category><category><![CDATA[restful]]></category><category><![CDATA[zf2]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Разбор URL в Zend Framework 2]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/198614/</guid>
      <link>https://habr.com/ru/articles/198614/?utm_campaign=198614&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<b>Задача:</b> <ol>
<li>Иметь метод, разбирающий на составляющие строку содержащую URL. Строка может содержать как абсолютный, так и относительный URL, и оба эти варианты должны быть правильно разобраны.</li>
<li> Причём в стоке допустим «неправильный» формат абсолютной ссылки — без «http://». Далее по тексту ссылки «неправильного» формата будем называть <i>неполными абсолютными ссылками</i>.</li>
<li>Реализовать поддержку «РФ» доменов.</li>
</ol><br/>
 <a href="https://habr.com/ru/articles/198614/?utm_campaign=198614&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Tue, 22 Oct 2013 16:32:31 GMT</pubDate>
      <dc:creator><![CDATA[deffect]]></dc:creator>
      
      <category><![CDATA[url-parsing]]></category><category><![CDATA[zf2]]></category><category><![CDATA[zend framework 2]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Пример разработки блога на Zend Framework 2. Часть 3. Работа с пользователями]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/192726/</guid>
      <link>https://habr.com/ru/articles/192726/?utm_campaign=192726&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Это третья (последняя?) часть статьи, посвященной разработке простого приложения при помощи Zend Framework 2. <a href="http://habrahabr.ru/post/192522/">В первой части</a> я рассмотрел структуру ZendSkeletonApplication, <a href="http://habrahabr.ru/post/192608/">во второй части</a> привел пример разработки простого модуля. Эта часть посвящена работе с пользователями, а также я прикручу к проекту шаблонизатор Twig.<br/>
<br/>
<h2>Работа с пользователями</h2><br/>
Код написанный в предыдущих частях, позволяет создавать, редактировать и удалять блогпосты всем посетителям сайта. Такой подход неприемлем для любого рабочего сайта, поэтому сейчас настало время решить вопросы регистрации/авторизации и распределения прав доступа к различным возможностям приложения.<br/>
<br/>
<h3>Zf Commons</h3><br/>
Для Zend фреймворка написано достаточно много модулей, решающих стандартные задачи, найти их можно на специальном сайте: <a href="http://modules.zendframework.com/">modules.zendframework.com</a>. Вместо разработки своих велосипедов для решения стандартных задач я считаю более правильным использовать/адаптировать под себя готовые решения (по крайней мере готовые решения нужно изучить прежде чем браться за разработку велосипеда).<br/>
<br/>
Среди множества разработчиков модулей выделяется команда ZF Commons, ребятами из этой команды разработан ряд очень полезных модулей, которые мы будем использовать в этом проекте: <a href="https://github.com/ZF-Commons">github.com/ZF-Commons</a>. Рассмотрим некоторые из них, которые необходимы нам на данном этапе.<br/>
 <a href="https://habr.com/ru/articles/192726/?utm_campaign=192726&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Fri, 06 Sep 2013 05:14:21 GMT</pubDate>
      <dc:creator><![CDATA[rrromka]]></dc:creator>
      
      <category><![CDATA[zend framework 2]]></category><category><![CDATA[doctrine]]></category><category><![CDATA[twig]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Пример разработки блога на Zend Framework 2. Часть 2. Модуль MyBlog]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/192608/</guid>
      <link>https://habr.com/ru/articles/192608/?utm_campaign=192608&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Это вторая из трех частей статьи, посвященной разработке простого приложения при помощи Zend Framework 2. <a href="http://habrahabr.ru/post/192522/">В первой части</a> я рассмотрел структуру ZendSkeletonApplication, а в этой части приведу пример разработки простого модуля. <a href="http://habrahabr.ru/post/192726/">Третья часть</a> будет посвящена работе с пользователями и шаблонизатором Twig.<br/>
<br/>
<h2>Установка и настройка дополнительных модулей</h2><br/>
Первым делом хочу отметить, что установка стороннего модуля в Zend Framework обычно состоит из примерно таких четырех шагов:<br/>
<ol>
<li>добавляем соответствующую строчку в <em>composer.json</em>, чтобы сообщить Композеру о новом модуле,</li>
<li>выполняем команду <em>php composer.phar update</em>, чтобы Композер загрузил новый модуль и при необходимости перегенерировал автолоад файлы,</li>
<li>добавляем новый модуль в список modules в файле <em>config/application.config.php</em>,</li>
<li>при необходимости, размещаем конфигурационный файл модуля (обычно пример такого файла находится в папке config модуля) в config/autoload и делаем в нем необходимые правки.</li>
</ol><br/>
Также, хочу подчеркнуть, что для всех модулей, перечисленных далее я задаю минимально необходимые для их работы настройки, более подробно о настройках и возможностях каждого из модулей можно узнать на их страницах документации.<br/>
<br/>
Давайте начнем с установки простого, но полезного модуля Zend Developer Tools.<br/>
 <a href="https://habr.com/ru/articles/192608/?utm_campaign=192608&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 05 Sep 2013 06:05:21 GMT</pubDate>
      <dc:creator><![CDATA[rrromka]]></dc:creator>
      
      <category><![CDATA[zend framework 2]]></category><category><![CDATA[PHP]]></category><category><![CDATA[Twig]]></category><category><![CDATA[Doctrine]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Пример разработки блога на Zend Framework 2. Часть 1. ZendSkeletonApplication]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/192522/</guid>
      <link>https://habr.com/ru/articles/192522/?utm_campaign=192522&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[В последние несколько лет моя работа связана с использованием <a href="http://drupal.org">CMS Drupal</a>, но на досуге я изучал и just for fun запускал проекты на питоновских фреймворках <a href="https://www.djangoproject.com/">Django</a>, <a href="http://flask.pocoo.org/">Flask</a> и <a href="http://twistedmatrix.com/trac/">Twisted</a>. Сейчас я решил освоить основы двух-трех популярных PHP-фреймфорков и первыми я решил изучить <a href="http://framework.zend.com/">Zend Framework 2</a> и <a href="http://www.yiiframework.com/">Yii</a>.<br/>
<br/>
В процессе ознакомления с Zend Framework 2 я изучил туториал с официального сайта (<a href="http://framework.zend.com/manual/2.2/en/user-guide/overview.html">http://framework.zend.com/manual/2.2/en/user-guide/overview.html</a>), просмотрел документацию фреймворка (<a href="http://framework.zend.com/manual/2.2/en/index.html">http://framework.zend.com/manual/2.2/en/index.html</a>), прочитал книгу Michael Romer “Web development with Zend Framework 2” и собрал собственное тестовое приложение. <br/>
<br/>
Переварив всю эту информацию, я пришел к мысли, что официальный туториал к фреймворку суховат:<br/>
<ul>
<li>в нем не рассказывается о работе с пользователями, сессиями и правами доступа,</li>
<li>лишь вскользь рассматривается такая основополагающая часть фреймворка как ServiceManager,</li>
<li>в качестве интерфейса с базой данных безальтернативно используется паттерн Table Gateway (и соответствующая его реализация в фреймворке),</li>
<li>используется встроенный в фреймворк шаблонизатор, который после питоновского <a href="http://jinja.pocoo.org/docs/">Jinja 2</a> кажется совершенно неудобным и примитивным,</li>
<li>и т.д.</li>
</ul><br/>
В итоге, более-менее удовлетворительное по функционалу приложение я смог создать после прочтения книги.<br/>
<br/>
В этой статье я хочу привести пример разработки простого блога, в ней будет несколько отличий от официального туториала. В первую очередь я постараюсь заострить внимание на тех вопросах, которые во время изучения показались мне недостаточно раскрытыми в официальном туториале. Кроме того я буду использовать некоторые технологии, альтернативные тем, что используются в Zend фреймворке по умолчанию:<br/>
<ul>
<li>в качестве шаблонизатора будет использоваться <a href="http://twig.sensiolabs.org/">Twig</a>,</li>
<li>для работы с БД — <a href="http://www.doctrine-project.org/">Doctrine ORM</a>,</li>
<li>для авторизации/аутентификации и распределения прав доступа я буду использовать существующие модули <a href="https://github.com/ZF-Commons/ZfcUser">ZfcUser</a> и <a href="https://github.com/bjyoungblood/BjyAuthorize">BjyAuthorize</a>,</li>
<li>также я рассмотрю вопросы разработки собственных валидаторов форм, View плагинов и другие.</li>
</ul><br/>
 <a href="https://habr.com/ru/articles/192522/?utm_campaign=192522&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">За деталями добро пожаловать под кат</a>]]></description>
      
      <pubDate>Wed, 04 Sep 2013 10:29:02 GMT</pubDate>
      <dc:creator><![CDATA[rrromka]]></dc:creator>
      
      <category><![CDATA[PHP]]></category><category><![CDATA[zend framework 2]]></category><category><![CDATA[MVC]]></category><category><![CDATA[Twig]]></category><category><![CDATA[Doctrine]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[ZendFramework + Bitrix]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/187382/</guid>
      <link>https://habr.com/ru/articles/187382/?utm_campaign=187382&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Пожалуй, это был один из&nbsp;самых муторных челленжей для меня за&nbsp;последнее время. <br/>
<br/>
Итак. Мы&nbsp;занимаемся технически сложными проектами, потенциально рассчитанными на&nbsp;высокие нагрузки (highload). Так получилось, что среди систем управления контентом пока победил Битрикс. Его хотят клиенты. Судя по&nbsp;нашему опыту&nbsp;&mdash; highload на&nbsp;Битриксе&nbsp;&mdash; очень даже реальная задача, если делать все аккуратно.<br/>
<br/>
<img src="https://habrastorage.org/storage2/c4b/8b1/a97/c4b8b1a9754fc14c9adec01089ec1b20.png"/><br/>
<br/>
Обычно в&nbsp;проектах, где много форм, личных кабинетов или какая-то сложная логика&nbsp;&mdash; мы&nbsp;предлагали на&nbsp;выбор клиенту реализацию на&nbsp;Zend Framewok или на&nbsp;Битрикс. Минус ZendFramework был в&nbsp;том, что на&nbsp;нем нужно писать админку. Минус Битрикса&nbsp;&mdash; он&nbsp;плохо приспособлен под проекты со&nbsp;сложной бизнес-логикой: там толком нет MVC и&nbsp;местами отвратительный код и&nbsp;API. Маркетинговые байки-балалайки про ядро&nbsp;D7, которым уже 2&nbsp;года&nbsp;&mdash; мы&nbsp;в&nbsp;расчёт не&nbsp;берем: <br/>
<br/>
<blockquote>«Talk is&nbsp;cheap. Show me&nbsp;the code» (Linus)</blockquote><br/>
Итак, возникла идея на&nbsp;сложных проектах использовать ZendFramework с&nbsp;управлением данными из&nbsp;админки Битрикса.  <a href="https://habr.com/ru/articles/187382/?utm_campaign=187382&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Mon, 22 Jul 2013 08:02:38 GMT</pubDate>
      <dc:creator><![CDATA[zevvssibirix]]></dc:creator>
      
      <category><![CDATA[zend framework]]></category><category><![CDATA[битрикс]]></category><category><![CDATA[код]]></category><category><![CDATA[разработка сайтов]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Кастомизация каптчи в Zend Framework 2]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/183232/</guid>
      <link>https://habr.com/ru/articles/183232/?utm_campaign=183232&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Компонент <i>Zend\Captcha</i> может принимать различные формы, в том числе задавать логические вопросы, генерировать искаженные шрифты, и передавать несколько изображений, установив между ними связь. <i>Zend\Captcha</i> имеет целью обеспечить разнообразие серверных решений, которые могут быть использованы либо в автономном режиме либо в сочетании с <i>Zend\Form</i> компонентой.<br/>
<br/>
Элемент Captcha имеет более одного поля, которые рендерятся друг за другом. Встроеный генератор изображений каптч (<i>Zend\Captcha\Image.php</i>) использует свой собственный хелпер (<i>Zend\Form\View\Helper\Captcha\Image.php</i>) для создания изображения. Так-же, в <i>Zend\Captcha\Image.php</i> находится метод 'getHelperName'. Этот метод передает имя хелпера для рендеринга изображения каптчи. По умолчанию 'getHelperName' передает 'captcha/image' — экземпляр класса <i>Zend\Form\View\Helper\Captcha\Image.php</i>. Если углубиться с помощью дебаггера, можно увидеть, что в свойстве экземпляра <i>phpRenderer::__helpers</i>, в <i>invokablesClasses</i> располагается хелпер 'captchaimage'. Это и есть <i>Zend\Form\View\Helper\Captcha\Image.php</i>, упомянутый ранее. Грубо говоря — вы просто создаете изображение, а всё остальное делает за вас рендерер используя хелпер, хотя такое положение вещей устраивает не всех.<br/>
 <a href="https://habr.com/ru/articles/183232/?utm_campaign=183232&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 13 Jun 2013 14:11:21 GMT</pubDate>
      <dc:creator><![CDATA[usrmrz]]></dc:creator>
      
      <category><![CDATA[zend framework 2]]></category><category><![CDATA[captcha]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[…]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/182128/</guid>
      <link>https://habr.com/ru/articles/182128/?utm_campaign=182128&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[///////// <a href="https://habr.com/ru/articles/182128/?utm_campaign=182128&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut"></a>]]></description>
      
      <pubDate>Tue, 04 Jun 2013 13:05:09 GMT</pubDate>
      <dc:creator><![CDATA[AlexPres]]></dc:creator>
      
      <category><![CDATA[google analytics]]></category><category><![CDATA[api]]></category><category><![CDATA[мониторинг]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] ZF2: Получить db adapter без использования service locator]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/175523/</guid>
      <link>https://habr.com/ru/articles/175523/?utm_campaign=175523&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Привет, читатели!<br/>
<br/>
Многие разработчики начали изучать Zend framework 2 и, скорее всего, столкнулись с проблемой использования постоянного адаптера для базы данных. Я хотел бы поделиться с вами интересной статьей, которая помогла мне решить этот вопрос.<br/>
<br/>
 <a href="https://habr.com/ru/articles/175523/?utm_campaign=175523&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Thu, 04 Apr 2013 16:49:14 GMT</pubDate>
      <dc:creator><![CDATA[e_Jin]]></dc:creator>
      
      <category>php</category><category>zend framework 2</category><category>service locator</category><category>adapter</category><category>tablegateway</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[HOWTO: Одна из возможных реализация Модели (MVC) в Zend Framework]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/169537/</guid>
      <link>https://habr.com/ru/articles/169537/?utm_campaign=169537&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Написание статьи навеяно <a href="http://habrahabr.ru/qa/34735/">habrahabr.ru/qa/34735</a> и <a href="http://habrahabr.ru/qa/32135/">habrahabr.ru/qa/32135</a> вопросами, в качестве ответов на которые не смог найти полной и подробной информации, чего очень не хватало. Я надеюсь, что она будет полезна и другим. <br/>
<br/>
Проект, на чью долю пал выбор в виде ZF в качестве основного фреймворка, представлял из себя мобильную версию сервиса (адаптивный дизайн с некоторыми ньюансами) + АПИ для мобильных приложений. <br/>
Коллегиально было принято политико-техническое решение делать единое АПИ, посредством которого будет общаться и сайт, и приложения. <br/>
<br/>
На этом, думаю, прелюдию можно закончить и перейти к самому интересному.<br/>
 <a href="https://habr.com/ru/articles/169537/?utm_campaign=169537&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Fri, 15 Feb 2013 23:53:33 GMT</pubDate>
      <dc:creator><![CDATA[yushkevichv]]></dc:creator>
      
      <category><![CDATA[zend framework]]></category><category><![CDATA[mvc]]></category><category><![CDATA[model]]></category><category><![CDATA[php]]></category><category><![CDATA[tutorial]]></category><category><![CDATA[howto]]></category><category><![CDATA[проектирование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[MVC система в Zend Framework 2]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/166657/</guid>
      <link>https://habr.com/ru/articles/166657/?utm_campaign=166657&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Здравствуйте дорогие хабражители.<br/>
Совсем недавно вышел в свет Zend Framework 2. Однако его изучение у многих усложняет отсутствие русской документации и единого сообщества. Так же во второй ветке этого фреймворка появилось множество нововведений и плюшек, про который обычный PHP программист раньше даже не слышал. Но их можно изучить особо не потея. А вот понять, как работает ZF2 без понимания логики работы его MVC системы достаточно затруднительно. Поэтому решил сделать перевод с официального сайта именно этого раздела.И так приступим. <br/>
<br/>
<h4>MVC в Zend Framework 2</h4><br/>
<br/>
Zend\Mvc представляет собой совершено новую реализацию MVC системы для Zend Framework 2. Основное внимание было уделено производительности и гибкости.<br/>
<br/>
<h6>Слой MVC построен на основе следующих компонентов:</h6><br/>
<ol>
<li>Zend\ServiceManager — Zend Framework предоставляет набор различных сервисов, определенных в Zend\Mvc\Service. ServiceManager создает и настраивает экземпляр вашего приложения и рабочего процесса.</li>
<li>Zend\EventManager – MVC является событиями. Данный компонент используется повсеместно. Для начальной загрузки приложения, возврата ответов (response) и запросов (request), настройки и получения маршрутов (routes), а так же для обработки (render) скриптов вида (views).</li>
<li>Zend\Http – особый объект запросов (request) и ответов (response). Используется с Zend\Stdlib\DispatchableInterface. Все контроллеры представляют собой объекты «dispatch».</li>
</ol><br/>
<h6>В MVC слое используются следующие вспомогательные компоненты:</h6><br/>
<ol>
<li>Zend\Mvc\Router – содержит классы, обеспечивающие маршрутизацию запросов. Другими словами, перенаправляет запросы к нужным контроллерам. </li>
<li> Zend\Http\PhpEnvironment – предоставляет набор декораторов объектов HTTP запросов и ответов, обеспечивающих инъекцию запросов в текущую среду (включая GET и POST параметры, HTTP заголовки).</li>
<li> Zend\Mvc\Controller – набор абстрактных классов контроллеров с базовой функциональностью, такой как создание событий, диспетчеризацией действий и т.д.</li>
<li>Zend\Mvc\Service – набор ServiceManager фабрик и определений по умолчанию для различных процессов приложения. </li>
<li>Zend\Mvc\View – предоставляет стандартные возможности визуализации скриптов вида, регистрации помощников и многое другое. Так же предоставляет различные слушатели, которые «связывают» рабочий процесс MVC, обеспечивая такие функции, как автоматическое разрешение имен шаблонов, автоматическое создание модели вида и инъекций, т.д. </li>
</ol><br/>
 <a href="https://habr.com/ru/articles/166657/?utm_campaign=166657&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Tue, 22 Jan 2013 13:34:35 GMT</pubDate>
      <dc:creator><![CDATA[struggleendlessly]]></dc:creator>
      
      <category><![CDATA[Zend Framework 2]]></category><category><![CDATA[MVC]]></category><category><![CDATA[Zend]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Храним ID в Cookie]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/166641/</guid>
      <link>https://habr.com/ru/articles/166641/?utm_campaign=166641&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Ваш сайт все более популярен, рекорды посещаемости бьются еженедельно. Вы подключаете кеширование, разбираетесь в нюансах настроек, оптимизируете. Но наступает момент когда одного сервера уже никак не достаточно, а переход на самую классную в мире железяку не находит полного понимания у начальства. Ах да, ID пользователя Вы храните в Сессии PHP в файле, и вроде бы уже морально готовы положить все в базу данных, как рекомендует Интернет… Но что-то Вас останавливает.<br/>
 <a href="https://habr.com/ru/articles/166641/?utm_campaign=166641&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Tue, 22 Jan 2013 12:41:37 GMT</pubDate>
      <dc:creator><![CDATA[olku]]></dc:creator>
      
      <category><![CDATA[php]]></category><category><![CDATA[cookies]]></category><category><![CDATA[authentication]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Zend Framework: XSL и самостоятельная сериализация Views]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/166631/</guid>
      <link>https://habr.com/ru/articles/166631/?utm_campaign=166631&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[Перевод статьи <a href="http://www.contentwithstyle.co.uk/content/zend-framework-xsl-and-self-serializing-views/">Zend Framework: XSL and self-serializing Views</a><br/>
Автор: Pascal Opitz<br/>
<br/>
Я давно утверждал, что фраемворки MVC должны использовать стили XSL вместо встроенного PHP кода и прочего. Вот почему я постучал вместе немного доказательство концепции Zend Framework, где представления файлов в виде XSL шаблона, а представление сериализует себя в XML для рендеринга.<br/>
<br/>
 <a href="https://habr.com/ru/articles/166631/?utm_campaign=166631&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать дальше &rarr;</a>]]></description>
      
      <pubDate>Tue, 22 Jan 2013 12:15:02 GMT</pubDate>
      <dc:creator><![CDATA[Hooter]]></dc:creator>
      
      <category><![CDATA[zend framework]]></category><category><![CDATA[xml]]></category><category><![CDATA[xslt]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
