<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>Хабрахабр / PHP / Захабренные</title>
	<link>http://habrahabr.ru/rss/hub/php/</link>
	<description><![CDATA[Захабренные посты из хаба «PHP» на Хабрахабре]]></description>
	<language>ru</language>
	<managingEditor>editor@habrahabr.ru</managingEditor>
	<generator>habrahabr.ru</generator>
	<pubDate>Sun, 27 May 2012 05:43:10 GMT</pubDate>
	<lastBuildDate></lastBuildDate>
	<image>
		<link>http://habrahabr.ru/</link>
		<url>http://habrahabr.ru/i/logo.gif</url>
		<title>Хабрахабр</title>
	</image>
	
		
			
		
	<item>
		<title><![CDATA[Разрабатываем модуль PHP на C++. Часть 1: экскурс в мир Zend Engine 2]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/144582/</guid>
		<link>http://habrahabr.ru/post/144582/</link>
		<description><![CDATA[Доброго времени суток, уважаемое Харбасообщество!<br/>
<br/>
Под катом изложена некоторая информация касательно написания расширений для PHP c использованием C++, почерпнутая мной из различных источников (по большей части англоязычных) и ковыряния исходников Zend Engine 2 во время разработки одного модуля для собственных нужд. Так как объем ее достаточно велик, далее я старался быть краток. <br/>
<br/>
Итак, в этой части:<br/>
<ul>
<li><a href="#anch1">Внутренний мир Zend Engine 2</a></li>
<li><a href="#anch2">Иерархия типов данных ZE и структура модуля расширения</a></li>
</ul> <br/>
А вот до C++ в этой части мы так и не доберемся… =)<br/>
<br/>
<i><u>Маленький дисклеймер:</u> содержимое статьи не есть истина в первой инстанции, не основывается на официальной документации (а есть ли она?) и является моим субъективным взглядом на ZE 2. Тем не менее, в свое время я был бы рад найти нечто подобное на просторах Рунета, дабы сэкономить время на начальных этапах разработки.<br/>
</i><br/>
 <a href="http://habrahabr.ru/post/144582/#habracut">Читать дальше &rarr;</a>]]></description>
		
		<pubDate>Sat, 26 May 2012 12:08:57 GMT</pubDate>
		<author>Ostrovski</author>
		<category><![CDATA[PHP]]></category><category><![CDATA[C++]]></category>
		<category><![CDATA[PHP]]></category><category><![CDATA[extensions]]></category><category><![CDATA[C]]></category><category><![CDATA[C++]]></category><category><![CDATA[zend engine]]></category>
	</item>
	
	
	
	
	
	

		
	<item>
		<title><![CDATA[Пакетные операции, как это делается в Drupal]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/144424/</guid>
		<link>http://habrahabr.ru/post/144424/</link>
		<description><![CDATA[При разработке проектов, сложнее чем сайт-визитка, нередко возникает необходимость в обработке больших объёмов данных. Сплошь и рядом заказчики хотят интеграцию с 1С, импорт существующих прайсов, выгрузку на Яндекс-Маркет, миграцию откуда угодно. Очевидно, что создать тысячу нод за один запуск не выйдет, а раз так, то на помощь приходят пакетные операции aka <a href="http://api.drupal.org/api/drupal/includes%21form.inc/group/batch/7">Batch operations</a>.  <a href="http://habrahabr.ru/post/144424/#habracut">Читать дальше &rarr;</a>]]></description>
		
		<pubDate>Wed, 23 May 2012 20:22:24 GMT</pubDate>
		<author>Punk_UnDeaD</author>
		<category><![CDATA[Веб-разработка]]></category><category><![CDATA[PHP]]></category><category><![CDATA[Drupal]]></category>
		<category><![CDATA[php]]></category><category><![CDATA[drupal]]></category><category><![CDATA[batch]]></category>
	</item>
	
	
	
	
	
	

		
	<item>
		<title><![CDATA[DevConf 2012 — сформирована альфа-версия программы конференции]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/144389/</guid>
		<link>http://habrahabr.ru/post/144389/</link>
		<description><![CDATA[<img src="http://content.devconf.ru/2012/promo/devconf_shedule.jpg" alt="image" align="left"/><br/>
Коллеги — спасибо Вам за голоса! <br/>
<br/>
Альфа<sup>*</sup> версия программы уже на сайте <a href="http://devconf.ru/programm/"> DevConf 2012 </a><br/>
<br/>
Кто еще раздумывал над участием, поспешите — осталось меньше 20% мест.<br/>
<br/>
* — Альфа означает что вероятны изменения в программе +-20% <a href="http://habrahabr.ru/post/144389/#habracut"></a>]]></description>
		
		<pubDate>Wed, 23 May 2012 11:51:02 GMT</pubDate>
		<author>phpclub</author>
		<category><![CDATA[PHP]]></category><category><![CDATA[Веб-разработка]]></category><category><![CDATA[Блог компании DevConf]]></category>
		<category><![CDATA[php]]></category><category><![CDATA[python]]></category><category><![CDATA[ruby]]></category><category><![CDATA[javascript]]></category><category><![CDATA[.net]]></category><category><![CDATA[mysql]]></category><category><![CDATA[mariadb]]></category><category><![CDATA[конференция веб-разработчиков]]></category>
	</item>
	
	
	
	
	
	

		
	<item>
		<title><![CDATA[Тонкости настройки Yii под высокие нагрузки]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/144333/</guid>
		<link>http://habrahabr.ru/post/144333/</link>
		<description><![CDATA[Здравствуй, Хабр.<br/>
<br/>
После <a href="http://habrahabr.ru/post/134617/">анонса</a> своего <a href="http://gdekoncert.ru">проекта</a> на Хабре, группа трудящихся в комментариях изъявила желание узнать более подробно, о технологиях используемых в проекте и тонкостях настроек. Как я писал ранее в проекте используется <a href="http://www.yiiframework.com/">Yii фреймворк</a>, о настройках которого и поговорим. <br/>
<br/>
Все что здесь изложено было получено из личного опыта в процессе реализации своего проекта и суммирования информации полученной из официальных и не очень источников. Попытаюсь в данной статье рассказать о самых важных аспектах настройки Yii под высокие нагрузки, начиная от настройки кэша исполняемого кода php и заканчивая выбором инструментария для работы с базой данных.<br/>
<br/>
 <a href="http://habrahabr.ru/post/144333/#habracut">Итак если вам интересно,то прошу под кат.</a>]]></description>
		
		<pubDate>Tue, 22 May 2012 23:03:50 GMT</pubDate>
		<author>Solovej</author>
		<category><![CDATA[Yii]]></category><category><![CDATA[PHP]]></category>
		<category><![CDATA[yii framework]]></category><category><![CDATA[php]]></category>
	</item>
	
	
	
	
	
	

		
	<item>
		<title><![CDATA[Рассылки по сегментам на основе MailChimp]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/144190/</guid>
		<link>http://habrahabr.ru/post/144190/</link>
		<description><![CDATA[Привет, Хабр! Сегодня я расскажу о том, как можно интегрировать сервис почтовых рассылок mailchimp на своем сайте. <br/>
Сервис дает множество возможностей: <br/>
 — расширенный трекинг;<br/>
 — выборки пользователей;<br/>
 — красивые шаблоны писем;<br/>
 — интеграция с социальными сетями;<br/>
 — интеграция с Google Analytics;<br/>
 — экономия времени на разработку своего проекта.<br/>
На основе этого сервиса мы сделали автоматическую рассылку спецпредложений по целевым срезам — определенным вендорам и категориям продуктов. Попробуем вкратце рассказать о некоторых особенностях реализации.<br/>
 <a href="http://habrahabr.ru/post/144190/#habracut">Читать дальше &rarr;</a>]]></description>
		
		<pubDate>Mon, 21 May 2012 07:40:24 GMT</pubDate>
		<author>Softliner</author>
		<category><![CDATA[Веб-разработка]]></category><category><![CDATA[PHP]]></category><category><![CDATA[Блог компании Softline]]></category>
		<category><![CDATA[php]]></category><category><![CDATA[mailchimp]]></category><category><![CDATA[api]]></category><category><![CDATA[рассылки]]></category><category><![CDATA[сегменты]]></category>
	</item>
	
	
	
	
	
	

		
	
	<item>
		<title><![CDATA[[Из песочницы] Коллекции объектов в PHP]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/144182/</guid>
		<link>http://habrahabr.ru/post/144182/</link>
		<description><![CDATA[На протяжении последних 5 лет я работаю с PHP. У него есть достаточно разных проблем, но это никогда не мешало создавать отлично работающие продукты.<br/>
<br/>
Не смотря на это, есть ряд вещей, которые выполняются внутри достаточно «криво». Один из вопросов, который постоянно тратил мои нервы, был вопрос работы с множествами объектов с помощью массивом данных.<br/>
 <a href="http://habrahabr.ru/post/144182/#habracut">Читать дальше &rarr;</a>]]></description>
		
		<pubDate>Mon, 21 May 2012 06:18:01 GMT</pubDate>
		<author>rmk</author>
		<category><![CDATA[Веб-разработка]]></category><category><![CDATA[PHP]]></category>
		<category>PHP</category><category>массивы</category><category>коллекции объектов</category>
	</item>
	
	
	
	
	

		
	<item>
		<title><![CDATA[Inline-тесты для PHP]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/144168/</guid>
		<link>http://habrahabr.ru/post/144168/</link>
		<description><![CDATA[<img src="http://habrastorage.org/storage2/b15/617/911/b156179115148e62c990ca19b5c17d76.png" align="left"/>Inline-тесты — это тесты, встроенные непосредственно в DOC-комментарии тестируемого скрипта. Такая фишка, насколько я знаю, есть в Python, хотя внятного описания найти не смог. В любом случае, идея мне понравилась, так как inline-тесты имеют ряд преимуществ по сравнению с обычными, которые я изложу ниже. Поэтому хочу предложить Вашему вниманию инструмент для запуска таких тестов для PHP.<br/>
 <a href="http://habrahabr.ru/post/144168/#habracut">Читать дальше &rarr;</a>]]></description>
		
		<pubDate>Sun, 20 May 2012 20:09:42 GMT</pubDate>
		<author>TedMosby</author>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category><category><![CDATA[inline tests]]></category><category><![CDATA[phpinlinetest]]></category><category><![CDATA[phpunit]]></category><category><![CDATA[testing]]></category><category><![CDATA[doctest]]></category>
	</item>
	
	
	
	
	
	

		
	<item>
		<title><![CDATA[Еще раз о каррировании и частичном применении в PHP]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/144160/</guid>
		<link>http://habrahabr.ru/post/144160/</link>
		<description><![CDATA[<img src="http://habrastorage.org/storage2/67d/d69/682/67dd69682cc071a8e81e012abe7d901b.jpg" align="left" alt="Искусство каррирования" title="Искусство каррирования"/>В недавней <a href="http://habrahabr.ru/post/143957/">статье</a> предложена реализация <i>каррирования</i> (currying) и <i>частичного применения</i> (partial function application) на PHP. Ее фундаментальным недостатком является то, что результатом каррирования является не функция, а объект. Он уже не может быть передан в качестве callback-параметра, а для подстановки аргументов приходится использовать специальный синтаксис. В настоящем тексте предлагается новая, прозрачная реализация этих конструкций для PHP 5.3 и выше.<br/>
<br/>
<i>Термин </i>currying <i>происходит от фамилии американского математика Haskell Curry. Второе значение слова </i>currying <i> — выделка дубленой кожи. </i><br/>
<br/>
Понятия каррирования и частичного применения происходят из функциональных языков программирования, в рамках которых они находят широчайшее применение. Современный PHP проявляет тенденцию к заимствованию некоторых элементов функционального программирования (функции как объекты первого класса, анонимные функции и замыкания), так что обсуждаемые концепции уже не являются для него совершенно инородными.<br/>
<br/>
Эмуляция каррирования и частичного применения на PHP — это один из примеров того, что Макконнелл в «Совершенном коде» (гл. 4.3) называет программированием <b>с использованием</b> языка, а не <b>на</b> языке.<br/>
 <a href="http://habrahabr.ru/post/144160/#habracut">Читать дальше &rarr;</a>]]></description>
		
		<pubDate>Mon, 21 May 2012 08:16:50 GMT</pubDate>
		<author>Bodigrim</author>
		<category><![CDATA[Программирование]]></category><category><![CDATA[Веб-разработка]]></category><category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category><category><![CDATA[каррирование]]></category><category><![CDATA[карринг]]></category><category><![CDATA[частичное применение]]></category><category><![CDATA[currying]]></category><category><![CDATA[partial function application]]></category><category><![CDATA[functional programming]]></category><category><![CDATA[функциональное программирование]]></category>
	</item>
	
	
	
	
	
	

		
	<item>
		<title><![CDATA[Стоит ли смотреть в сторону PHP тому, кто решился только со второй попытки научиться прилично программировать?]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/144111/</guid>
		<link>http://habrahabr.ru/post/144111/</link>
		<description><![CDATA[Здравствуйте, друзья. С большой осторожностью касаюсь столь холиварной темы, но хочу рассказать свою небольшую историю о том, почему я, будучи уже далеко не в студенческом возрасте, решил всё-таки изучать программирование, и от чего же я собираюсь (о, боже) использовать для реализации своих намерений <b>PHP</b>. Буду рад получить от вас, коллеги по IT-индустрии, ценные советы и наставления.<br/>
<br/>
<i>Забегая вперёд скажу, что в комментариях к топику (кроме холиваров о языках) сказано много полезного. За что огромное спасибо хабровчанам.</i> <a href="http://habrahabr.ru/post/144111/#habracut">Читать дальше &rarr;</a>]]></description>
		
		<pubDate>Sat, 19 May 2012 00:25:21 GMT</pubDate>
		<author>smartup</author>
		<category><![CDATA[Учебный процесс в IT]]></category><category><![CDATA[PHP]]></category>
		<category><![CDATA[нуб]]></category><category><![CDATA[новичок]]></category><category><![CDATA[обучение]]></category><category><![CDATA[php]]></category><category><![CDATA[ide]]></category><category><![CDATA[обучение программированию]]></category><category><![CDATA[советы начинающим]]></category><category><![CDATA[учебный процесс]]></category><category><![CDATA[учебные материалы]]></category><category><![CDATA[учебники]]></category><category><![CDATA[личный опыт]]></category>
	</item>
	
	
	
	
	
	

		
	<item>
		<title><![CDATA[Карринг и Частичное применение функции в PHP]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/143957/</guid>
		<link>http://habrahabr.ru/post/143957/</link>
		<description><![CDATA[Что такой карринг и частичное применение функции можно прочитать вот в этой <a href="http://habrahabr.ru/post/143465/">статье</a>.<br/>
<br/>
Собственно вот реализация на PHP: <a href="https://github.com/Elfet/Functional">github.com/Elfet/Functional</a><br/>
<br/>
Пример использования частичного применения:<br/>
 <a href="http://habrahabr.ru/post/143957/#habracut">Читать дальше &rarr;</a>]]></description>
		
		<pubDate>Wed, 16 May 2012 09:37:37 GMT</pubDate>
		<author>Elfet</author>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category><category><![CDATA[curry]]></category><category><![CDATA[partial apply]]></category>
	</item>
	
	
	
	
	
	

		
	<item>
		<title><![CDATA[DEVCONF 2012 — 9-10 июня в Москве. Началось голосование за доклады]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/143882/</guid>
		<link>http://habrahabr.ru/post/143882/</link>
		<description><![CDATA[<img src="http://content.devconf.ru/2012/promo/Eggs.jpg" alt="image" align="right"/>Коллеги! Началось традиционное голосование за доклады <a href="http://devconf.ru/">DEVCONF 2012</a>! <br/>
Всего была подана 61 заявка.<br/>
<ul>
<li>Общая секция — 18</li>
<li> php — 16</li>
<li> js — 8</li>
<li> ruby — 6</li>
<li> python — 4</li>
<li> perl — 1</li>
<li> Мастер-классы — 7 </li>
</ul><a href="http://devconf.ru/offers"><b>Скажи ДА! Интересным и полезным докладам на DevConf 2012</b></a>. <a href="http://habrahabr.ru/post/143882/#habracut"></a>]]></description>
		
		<pubDate>Tue, 15 May 2012 10:40:43 GMT</pubDate>
		<author>phpclub</author>
		<category><![CDATA[Веб-разработка]]></category><category><![CDATA[PHP]]></category><category><![CDATA[Блог компании DevConf]]></category>
		<category><![CDATA[php]]></category><category><![CDATA[js]]></category><category><![CDATA[perl]]></category><category><![CDATA[ruby]]></category><category><![CDATA[python]]></category><category><![CDATA[конференция веб-разработчиков]]></category>
	</item>
	
	
	
	
	
	

		
	
	<item>
		<title><![CDATA[[Из песочницы] Простой сканер внедрения кода на PHP]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/143739/</guid>
		<link>http://habrahabr.ru/post/143739/</link>
		<description><![CDATA[Современные хакеры редко <b>“дефейсят”</b> взломанные сайты, как правило, внедряют сторонний код в скрипты для осуществления дальнейших зловредных действий.<br/>
<br/>
Как часто вы тратили часы, выискивая код, внедрённый в ваши скрипты, после атаки?<br/>
<br/>
Некоторое время назад меня привлекли к администрированию десяти сайтов, расположенных на одном виртуальном хостинге. Сайты крутились на <b>“полуразложившихся”</b> движках, написанных в <b>2000-2003</b> годах. Сайты постоянно падали под натиском <b>“скрипт-кидди”</b> и изобиловали внедрёнными <b>“зловредами”</b>. Мои задачи были тривиальны: поддержать работу сайтов, перенести на новые движки или залатать дыры в старых движках. <br/>
<br/>
Всё предельно просто, но в полевых условиях было необходимо анализировать текущее состояние файлов, чтобы не дать возможности внедрить код ни в один из сайтов, так как получение доступа к одному сайту на виртуальном хостинге ставило под прицел и сайты, уже перенесённые на новые версии движков. Реагировать на внедрение кода нужно было молниеносно, а проверять файлы вручную при наличии тысяч файлов не представлялось возможным.<br/>
<br/>
В процессе работы родилось очень простое решение, которым я и хочу поделиться. Хочу оговориться, что данное решение простое и не претендует на гениальность и полноту реализации, но надеюсь, что будет кому-то полезно.<br/>
 <a href="http://habrahabr.ru/post/143739/#habracut">Алгоритм работы сканера</a>]]></description>
		
		<pubDate>Sun, 13 May 2012 12:21:02 GMT</pubDate>
		<author>Newlook_ru</author>
		<category><![CDATA[PHP]]></category>
		<category>php</category><category>injection</category><category>вирусы</category><category>автоматизация</category><category>jquery</category>
	</item>
	
	
	
	
	

		
	
	<item>
		<title><![CDATA[[Из песочницы] Aleph PHP Framework]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/143658/</guid>
		<link>http://habrahabr.ru/post/143658/</link>
		<description><![CDATA[<h4>Итак, встречайте <b>Aleph</b>!</h4><br/>
Новый микро-фрэймворк на PHP, по размеру и функционалу, которого уместно сравнение разве что только с медицинским скальпелем. <br/>
<br/>
По умолчанию содержит всё необходимое для быстрого старта и написания приложений. <br/>
<br/>
Причины, почему стоит обратить на него внимание:<br/>
<ul>
<li>Фрэймворк реально маленький. Обильно сдобренный phpDoc комментариями код занимает около 3000 строк;</li>
<li>Фреймворк является результатом более чем 6-ти летней профессиональной деятельности его авторов в области web-разработок;</li>
<li>Возможности фрэймворка позволяют использовать его как базу под практически любое приложение.</li>
</ul><br/>
Причём Aleph — это пока что только ядро полноценного фреймворка, уже готового и давно используемого в реальных web-приложениях. Публикация остальных частей системы не за горами — вы просто влюбитесь в возможность проектировать и реализовывать приложения так, как если бы вы делали это в десктопном программировании (не надо пытаться представить это прям сейчас и тут же критиковать, дождитесь пока не увидите это своими глазами, и поймёте, что я имел в виду). Есть и ORM, и система контролов (именно контролов, типа тех, что в ASP.Net), валидаторы, кэширование, шаблонизация и всё то, что делает набор вспомогательных библиотек фреймворком.<br/>
 <a href="http://habrahabr.ru/post/143658/#habracut">Читать дальше &rarr;</a>]]></description>
		
		<pubDate>Fri, 11 May 2012 15:06:58 GMT</pubDate>
		<author>AlephTav</author>
		<category><![CDATA[Веб-разработка]]></category><category><![CDATA[PHP]]></category>
		<category>php</category><category>php-framework</category><category>micro-framework</category><category>web-разработка</category>
	</item>
	
	
	
	
	

		
	<item>
		<title><![CDATA[Что нам стоит фильм «построить»?]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/143621/</guid>
		<link>http://habrahabr.ru/post/143621/</link>
		<description><![CDATA[<h4>Преамбула</h4><br/>
В процессе работы, анализировал лог, который представлял из себя print_r массива (очень большого массива).<br/>
Крутить ролик, пальцы устали. Решил воспользоваться «ускоренным» скроллингом… и…<br/>
<br/>
<h4>Кинематограф</h4><br/>
Так как массив был многомерным и его второй уровень имел статичное количество элементов, я увидел «кино».<br/>
Это были мелькающие значения массива, которые складывались в кадры. Небольшие операции по регулировке скорости прокрутки, и кадры зафиксировались. <a href="http://habrahabr.ru/post/143621/#habracut">Читать дальше &rarr;</a>]]></description>
		
		<pubDate>Fri, 11 May 2012 06:03:00 GMT</pubDate>
		<author>AlexMcArrow</author>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category><category><![CDATA[just for fun]]></category><category><![CDATA[пятница]]></category><category><![CDATA[кинематограф]]></category>
	</item>
	
	
	
	
	
	

		
	<item>
		<title><![CDATA[Codeception — новости проекта]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/143567/</guid>
		<link>http://habrahabr.ru/post/143567/</link>
		<description><![CDATA[<img src="http://dl.dropbox.com/u/930833/codecept_text_200.png" alt="image" align="left"/>Я уже <a href="http://habrahabr.ru/post/136477/">писал</a> на Хабре о <a href="http://codeception.com/">Codeception</a> — фреймворке для тестирования приложений на PHP. Если вы никогда раньше не писали тестов для вашего приложения, вам обязательно стоит взглянуть на Codeception. Он очень прост в использовании и сделан специально, чтобы уберечь разработчиков от рутины.<br/>
<br/>
Сегодня я хотел бы рассказать, какие фичи появились в проекте в последнее время, а также отвечу на пару популярных вопросов.<br/>
 <a href="http://habrahabr.ru/post/143567/#habracut">Читать дальше &rarr;</a>]]></description>
		
		<pubDate>Thu, 10 May 2012 10:03:34 GMT</pubDate>
		<author>Davert</author>
		<category><![CDATA[TDD]]></category><category><![CDATA[PHP]]></category>
		<category><![CDATA[codeception]]></category><category><![CDATA[tdd]]></category><category><![CDATA[bdd]]></category><category><![CDATA[phpunit]]></category><category><![CDATA[selenium]]></category>
	</item>
	
	
	
	
	
	

		
	
	<item>
		<title><![CDATA[[Из песочницы] Реализация шаблона Identity Map в Yii Framework]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/143497/</guid>
		<link>http://habrahabr.ru/post/143497/</link>
		<description><![CDATA[Доброго времени суток, хабрасообщество!<br/>
<br/>
<h4>Проблема</h4><br/>
 При работе с базой данных или просто с объектами, доступными из разных частей вашего приложения, есть опасность, что объекты, которые, казалось бы, должны быть равны вовсе таковыми не являются.<br/>
<br/>
Например, допустим, у нас есть некоторая модель ActiveRecord — Expence и вот такой код: <br/>
 <pre><code class="php">$modelOne = Expence::model()-&gt;findByPk(10);
$modelTwo = Expence::model()-&gt;findByPk(10);
var_dump($modelOne === $modelTwo); // Вернет false</code></pre><br/>
 Таким образом, меняя одну модель мы никоим образом не затронем вторую(что логично, так как они ссылаются на разные объекты). <br/>
 <pre><code class="php">$modelOne-&gt;someField = &quot;Data&quot;;
$modelOne-&gt;save();
/// ...какой-то код...
echo $modelTwo-&gt;someField; // Содержит старое значение
$modelTwo-&gt;save(); // Затираем ранее записаные данные
</code></pre><br/>
  <a href="http://habrahabr.ru/post/143497/#habracut">Читать дальше &rarr;</a>]]></description>
		
		<pubDate>Wed, 09 May 2012 08:26:08 GMT</pubDate>
		<author>organium</author>
		<category><![CDATA[PHP]]></category><category><![CDATA[Yii]]></category>
		<category>php</category><category>yii</category><category>patterns</category>
	</item>
	
	
	
	
	

		
	<item>
		<title><![CDATA[Фото, видео и презентации докладов с ZFConf 2012]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/143379/</guid>
		<link>http://habrahabr.ru/post/143379/</link>
		<description><![CDATA[<a href="http://www.zfconf.ru/2012/talks/"><img src="http://www.zfconf.ru/images/logos/zfconf/zfconf-habr-logo-800px-05052012.jpg"/></a><br/>
<br/>
 <a href="http://habrahabr.ru/post/143379/#habracut">Читать дальше &rarr;</a>]]></description>
		
		<pubDate>Sat, 05 May 2012 19:53:13 GMT</pubDate>
		<author>pavel_smolnikov</author>
		<category><![CDATA[Zend Framework]]></category><category><![CDATA[PHP]]></category><category><![CDATA[Блог компании Wizartech]]></category>
		<category><![CDATA[zf]]></category><category><![CDATA[zfconf]]></category><category><![CDATA[zend framework]]></category><category><![CDATA[zend]]></category><category><![CDATA[конференция]]></category><category><![CDATA[2012]]></category><category><![CDATA[доклады]]></category><category><![CDATA[php]]></category><category><![CDATA[фреймфорк]]></category><category><![CDATA[framework]]></category>
	</item>
	
	
	
	
	
	

		
	<item>
		<title><![CDATA[Борьба с WordPress-червём GetMama]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/143375/</guid>
		<link>http://habrahabr.ru/post/143375/</link>
		<description><![CDATA[Привет!<br/>
Подлый вирус GetMama пожрал кучу сайтов на вордпрессе. В том числе несколько моих. И я вам расскажу, как это почистивать сущность в виде гномика.<br/>
<br/>
Началось с того, что некоторые сайты начали открываться очень долго. Причём только те, что на вордпрессе.<br/>
Я долго не мог понять, что же за беда приключилась. Обновил полностью всё ПО на сервере (думал, можнт wp какую-нибудь хитрую срань использует). Но это не помогло.<br/>
Тогда я стал искать, какая же функция выполняется так, сука, долго.<br/>
Для этого я использовал <a href="http://pecl.php.net/package/xhprof">xhprof</a>. <br/>
 <a href="http://habrahabr.ru/post/143375/#habracut">Читать дальше &rarr;</a>]]></description>
		
		<pubDate>Sat, 05 May 2012 15:35:58 GMT</pubDate>
		<author>q_styler</author>
		<category><![CDATA[Wordpress]]></category><category><![CDATA[PHP]]></category>
		<category><![CDATA[php]]></category><category><![CDATA[getmama]]></category><category><![CDATA[virus]]></category><category><![CDATA[wordpress]]></category><category><![CDATA[security]]></category>
	</item>
	
	
	
	
	
	

		
	
	
	
	<item>
		<title><![CDATA[[Перевод] Уязвимость PHP в режиме CGI]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/143331/</guid>
		<link>http://habrahabr.ru/post/143331/</link>
		<description><![CDATA[Существует уязвимость на некоторых настройках основанных на CGI (на Apache + mod_php и Nginx + PHP-FPM не влияет), которая оставалась не замеченной, по крайней мере 8 лет. В <a href="http://tools.ietf.org/html/draft-robinson-www-interface-00#section-7">7 разделе спецификации CGI говорится</a>:<br/>
<blockquote>Некоторые системы поддерживают метод для передачи [sic] массив строк в CGI скрипт. Используется только в случае «индексных» запросов. Определяется «GET» или «HEAD» HTTP-запрос со строкой поиска URL не содержащей незакодированных &quot;=&quot; символов.</blockquote><br/>
 <a href="http://habrahabr.ru/post/143331/#habracut">Читать дальше &rarr;</a>]]></description>
		
		<pubDate>Sat, 05 May 2012 01:16:11 GMT</pubDate>
		<author>sectus</author>
		<category><![CDATA[Информационная безопасность]]></category><category><![CDATA[PHP]]></category>
		<category>php</category>
	</item>
	
	
	

		
	<item>
		<title><![CDATA[Точное определение региона по GPS координатам]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/post/143277/</guid>
		<link>http://habrahabr.ru/post/143277/</link>
		<description><![CDATA[При разработке одного приложения возникла проблема разграничения доступа для регионов.<br/>
<br/>
Встала проблема определения принадлежности объекта к какому-либо региону России по его GPS координатам<br/>
<br/>
Первое, что мы начали использовать — это API Google,<br/>
после того как прописали алиасы к возвращаемым строкам и оплаты доступа (чтобы убрать лимит на запросы) все заработало.<br/>
И все было нормально пока гугл не сменил выдачу, например было раньше: Moskovskaya oblast', стало Moscow oblast'<br/>
Тут то и было решено не надеяться на гугл, а определять регион своими силами.<br/>
<br/>
<img src="http://cl.ly/330m361N2S0U0h071J0V/%D0%A1%D0%BD%D0%B8%D0%BC%D0%BE%D0%BA%20%D1%8D%D0%BA%D1%80%D0%B0%D0%BD%D0%B0%202012-05-04%20%D0%B2%2011.27.43.png"/><br/>
 <a href="http://habrahabr.ru/post/143277/#habracut">как мы решили эту задачу</a>]]></description>
		
		<pubDate>Fri, 04 May 2012 06:51:13 GMT</pubDate>
		<author>kiryam</author>
		<category><![CDATA[PHP]]></category><category><![CDATA[GPS]]></category>
		<category><![CDATA[gps]]></category><category><![CDATA[определение региона по gps]]></category>
	</item>
	
	
	
	
	
	

		
		
		
		
		
		
	

	
</channel>
</rss>

