<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
	<title>Хабрахабр / PHP / Отхабренные</title>
	<link>http://habrahabr.ru/rss/blog/php/unhabred/</link>
	<description><![CDATA[Отхабренные посты из блога «PHP» на Хабрахабре]]></description>
	<language>ru</language>
	<managingEditor>editor@habrahabr.ru</managingEditor>
	<generator>habrahabr.ru</generator>
	<pubDate>Sat, 11 Feb 2012 11:46:38 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 / Мультимагазин. Статья для начинающих веб-программистов]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/137503/</guid>
		<link>http://habrahabr.ru/blogs/php/137503/</link>			
		<description><![CDATA[Многие интересные технические решения, возникают в результате решения интересных проблем. А кто придумывает или создает такие проблемы инженерам? Ответ — конечно пользователи. Вот и эта статья как раз рассказывает об одной такой интересной проблеме и ее решении. <br/>
<br/>
Итак. В общем, проблема, со слов пользователя, выглядит, как необходимость создать один Основной интернет магазин и несколько Дополнительных. Основной магазин имеет полную базу товаров. Товар Дополнительных магазинов формируется путем запроса списка товаров из Основного магазина. Основной магазин, получив при запросе от Дополнительного магазина его идентификатор, отдает нужный товар. <br/>
<br/>
Теперь рассмотрим проблему глазами инженера, учитывая, что базы товаров Основного и Дополнительного магазина находятся на одном сервере. Количество Дополнительных магазинов нам не известно, но очевидно, что нагрузка на Основной магазин будет большой. Большое количество разного товара не дает нам возможности точно сформировать структуру таблиц с товаром. Свойства товара очень сильно разнятся в зависимости от его категории. Суммируя полученные данные, задача для проектировщика Основного магазина звучит как:<br/>
<br/>
<i>Спроектировать базу данных Основного магазина так, чтобы скорость выборки товара была очень быстрая, а свойства товара, его атрибуты, были динамическими. <br/>
</i><div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/137503/#habracut">Поехали!</a> </div>]]></description>
		
		<pubDate>Fri, 03 Feb 2012 06:28:05 GMT</pubDate>
		<author>vovs</author>
		<category>интернет-магазины</category><category>интернет-магазин</category>
	</item>
	
	
	
	
	
	

	
	
	
	
		
	<item>		
		<title><![CDATA[PHP / [Опрос] На основе каких возможностей PHP и каким способом вы разрабатываете приложения?]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/137433/</guid>
		<link>http://habrahabr.ru/blogs/php/137433/</link>
		<description><![CDATA[]]></description>
		
		<pubDate>Wed, 01 Feb 2012 16:53:49 GMT</pubDate>
		<author>aur</author>
		<category>php</category><category>ооп</category><category>структурное программирование</category>
	</item>
	
	

		
	<item>		
		<title><![CDATA[PHP / THP — попробуем объяснить популярно на примерах]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/137390/</guid>
		<link>http://habrahabr.ru/blogs/php/137390/</link>			
		<description><![CDATA[После провального топика <a href="http://habrahabr.ru/blogs/php/137328/">Template Hypertext Preprocessor — язык программирования, презентация open source проекта</a> мне посоветовали объяснить не научными тезисами, а научно-популярно на примерах. Карма есть, наверное в процессе её не станет, попробуем повторить. Переходим к делу. К сожалению не могу без предыстории. Те кто не хочет истории может переходить к концепции.<br/>
<br/>
<h4>История</h4><br/>
Давайте на секунду задумаемся, как мы программировали приложения до данного момента.<br/>
<br/>
В самом простом виде, это был вызываемый скрипт, который наверху перед тегом HTML вызывал некий движок, который вычислял данные и заносил их в глобальные переменные, или одну глобальную переменную — объект класса, либо большой ассоц. массив.<br/>
Немного в лучшем виде, конечно же это шаблонизатор. У вас вызывается тот же скрипт, только в нем нет ни капли HTML, вместо этого вы подключаете тоже ядро, и из тех же переменных заносите в шаблонизатор какие-нибудь данные, потом говорите ему «выведи мне это», а тут и шаблон и вроде удобства и то не всегда так как хотелось. (касательно синтаксиса).<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/137390/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Wed, 01 Feb 2012 03:18:29 GMT</pubDate>
		<author>wartur</author>
		<category>thp</category>
	</item>
	
	
	
	
	
	

		
	<item>		
		<title><![CDATA[PHP / Template Hypertext Preprocessor — язык программирования, презентация open source проекта]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/137328/</guid>
		<link>http://habrahabr.ru/blogs/php/137328/</link>			
		<description><![CDATA[<img align="left" src="http://habrastorage.org/storage2/cdc/f7f/a5c/cdcf7fa5c0486b81219155fb09549b02.png"/>Представляю вам новый open source проект. Надеюсь, что он будет интересен хабраобщественности и IT общественности в целом. Размещаю в блоге PHP, потому что интерпретатор написан на PHP и может быть непосредственно использован для создания решений.<br clear="all"/>
Template Hypertext Preprocessor – Специализированный, cверхвысокоуровневый, скриптовый язык программирования, для генерации динамических блоков html документа. Отличается особым удобством для создания и модификации динамических интерфейсов html страниц, встраивается в язык разметки html с сохранением валидности исходного документа, прозрачен с точки зрения ООП, является платформенно независимым.<br/>
<br/>
Для данного языка программирования реализован интерпретатор, основанный на языке PHP под названием “Template Engine”. Интерпретатор, отличается компонентной многоуровневой архитектурой, создает разумные ограничения работы на уровне спецификации, позволяет запускать голый PHP код и нативные PHP файлы в среде Template Engine. Спецификация THP / Template Engine создана таким образом, что бы максимально упростить разработчикам создание приложений и их расширение, а так же максимально структурировать код.<br/>
<br/>
<h4>Видеотуториал</h4><br/>
Для тех, кто хочет перейти сразу же к практике я подготовил видеотуториал по установке и объяснению базовых узлов системы. Установкой является: скачать и расположить на сервере, все остальное за исключением паролей БД, должно заработать само. Сайт проекта: <a href="http://thp.wartur.ru/">http://thp.wartur.ru/</a><br/>
<br/>
<iframe width="560" height="349" src="http://www.youtube.com/embed/1-NWkb7c-o0" frameborder="0" allowfullscreen></iframe><br/>
<br/>
Дополнительная общая информация под катом<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/137328/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Tue, 31 Jan 2012 04:03:10 GMT</pubDate>
		<author>wartur</author>
		<category>thp</category><category>Template Hypertext Preprocessor</category><category>php</category><category>язык программирования</category><category>open source</category>
	</item>
	
	
	
	
	
	

	
		
	<item>		
		<title><![CDATA[PHP / [Из песочницы] Дай пять или еще один PHP/CSS фреймворк]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/136929/</guid>
		<link>http://habrahabr.ru/blogs/php/136929/</link>			
		<description><![CDATA[Иногда, делая самую простую задачу, хочется, чтобы код решения был структурирован. На ум сразу приходят фреймворки. Фреймворков много, и есть здесь из чего выбрать. Но почти все из них являются очень громоздкими для решения небольших задач и имеют кучу документации, в которой еще нужно разобраться. В итоге затея с фреймворком сразу же отпадает, и пишется свое импровизированное решение со своей структурой. Highfive framework (или далее h5) пытается решить подобные ситуации, предоставляя каркас для простого приложения.<br/>
<br/>
Сам фреймворк едва умещается на один экран монитора и является просто идеей и минималистичной ее реализацией. Состоит всего из четырех функций (view, action, pdo, wtf) и нескольких каталогов с файлами.<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/136929/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Thu, 26 Jan 2012 13:21:44 GMT</pubDate>
		<author>cuhuak</author>
		<category>простой</category><category>PHP</category><category>CSS</category><category>фреймворк</category><category>mockup</category><category>highfive</category><category>hifive</category><category>h5</category>
	</item>
	
	
	
	
	

		
	<item>		
		<title><![CDATA[PHP / Универсальный класс автозагрузки]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/136887/</guid>
		<link>http://habrahabr.ru/blogs/php/136887/</link>			
		<description><![CDATA[Прочитав <a href="http://habrahabr.ru/blogs/php/136761/">этот</a> хабратопик. Решил поделиться своим классом автозагрузчика (вдруг кому пригодится), который умеет рекурсивно искать нужные файлы, не только классы, но и любой другой, переданный ему файл, ну и если там где указано файл не найден, то производит поиск по всему серверу начиная от корня, если файл найден где-то не там, генерит соответствующее сообщение, умеет работать с пространством имен и логировать свои действия в случае необходимости.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/136887/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Tue, 24 Jan 2012 08:12:34 GMT</pubDate>
		<author>Slavenin999</author>
		<category>php</category><category>autoload</category>
	</item>
	
	
	
	
	
	

		
	<item>		
		<title><![CDATA[PHP / Protected, Private и переопределение]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/136560/</guid>
		<link>http://habrahabr.ru/blogs/php/136560/</link>			
		<description><![CDATA[<h5>Создаём свойства</h5><br/>
При создании свойства класса, может возникнуть вопрос, как его объявить: <i>private</i> или <i>protected</i>?<br/>
Отличаются эти варианты тем, что <i>protected</i> виден классам-наследникам, а <i>private</i> нет.<br/>
И это даёт нам возможность скрыть от наследников переменную, чтобы они не напортачили в ней.<br/>
То есть, в большинстве случаев мы должны стремиться к тому, чтобы все свойства были <i>private</i>.<br/>
<br/>
Классу-наследнику, вполне возможно, потребуется получать это свойство — для этого в родителе можно создать protected метод.<br/>
<pre><code class="php">class Example
{
	private $field;

	protected function getField()
	{
		return $this-&gt;field;
	}
}
</code></pre><br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/136560/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Thu, 19 Jan 2012 00:09:00 GMT</pubDate>
		<author>EugeneOZ</author>
		<category>php</category><category>oop</category>
	</item>
	
	
	
	
	
	

	
		
	<item>		
		<title><![CDATA[PHP / [Из песочницы] Разработка модульного движка на PHP]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/133650/</guid>
		<link>http://habrahabr.ru/blogs/php/133650/</link>			
		<description><![CDATA[Есть много разных движков на <b>PHP</b>, от достаточно простых, до очень тяжеловесных и громоздих, включающих практически все.<br/>
<br/>
Но на мой взгляд лучший движек — расширяемый. И не такой, что к куче своих возможностей предлагает прикрутить еще и некоторые, а такой, в которого своих возможностей как-бы и нет, а есть только подлкючаемые на выбор.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/133650/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Tue, 29 Nov 2011 18:55:18 GMT</pubDate>
		<author>ShadowPrince</author>
		<category>модули</category><category>php</category><category>cms</category>
	</item>
	
	
	
	
	

	
		
	<item>		
		<title><![CDATA[PHP / [Из песочницы] Защита от сохрания изображений]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/132228/</guid>
		<link>http://habrahabr.ru/blogs/php/132228/</link>			
		<description><![CDATA[<img src="http://www.habrastorage.com/images/saveimg.png" alt="image"/><br/>
Здравствуйте, уважаемые харбрачитатели.<br/>
Некоторое время назад я столкнулся с очень, на мой взгляд, интересной задачей. Суть задачи заключалась в том, что необходимо максимально усложнить процесс сохранения картинок со страниц сайта. При этом картинки могут быть разных размеров.<br/>
<br/>
Задача ясна, приступим к её решению. В общем случае процесс сохранения картинки достаточно прост: кликаем по ней правой кнопкой мышки и в открывшемся меню выбираем «Сохранить изображение…» (в разных браузерах надпись может отличаться). Перехват нажатия правой кнопки мышки частично решит эту задачу, но обход данного ограничения до безобразия прост – отключаем JavaScript и спокойно вызываем контекстное меню. В этом случае достаточно картинку сделать фоновым изображением: <br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/132228/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Wed, 09 Nov 2011 11:55:30 GMT</pubDate>
		<author>MrMYSTIC</author>
		<category>php</category><category>сохранение изображений</category><category>защита</category>
	</item>
	
	
	
	
	

	
	
	
	
		
	<item>		
		<title><![CDATA[PHP / [Опрос] Какой PHP Framework Вы используете?]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/132180/</guid>
		<link>http://habrahabr.ru/blogs/php/132180/</link>
		<description><![CDATA[]]></description>
		
		<pubDate>Tue, 08 Nov 2011 16:38:37 GMT</pubDate>
		<author>oe24</author>
		<category>Symfony</category><category>Yii</category><category>CodeIgniter</category><category>CakePHP</category><category>Zend</category><category>Kohana</category><category>php</category><category>php framework</category><category>framework</category><category>опрос</category>
	</item>
	
	

	
	
	
	
		
	<item>		
		<title><![CDATA[PHP / [Опрос] По адресу windows.php.net/download сборки PHP 5.3 сделаны VC9, а для Apache от apache.org нужны VC6]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/130634/</guid>
		<link>http://habrahabr.ru/blogs/php/130634/</link>
		<description><![CDATA[]]></description>
		
		<pubDate>Tue, 18 Oct 2011 05:52:59 GMT</pubDate>
		<author>Mithgol</author>
		<category>PHP 5.3</category><category>PHP 5.2</category><category>Apache</category><category>Apache Lounge</category><category>готовые сборки</category>
	</item>
	
	

		
	<item>		
		<title><![CDATA[PHP / Интерпретатор Brainfuck]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/128673/</guid>
		<link>http://habrahabr.ru/blogs/php/128673/</link>			
		<description><![CDATA[<img align="right" src="http://habrastorage.org/storage1/85172476/a2e0fd7c/1ef6ea87/a26f4ef3.png"/><br/>
В этот раз я оказался недоволен решением в <a href="http://habrahabr.ru/blogs/brainfuck/128539/">одном</a> из хабратопиков, а именно, использованием какого-то мусорного интерпретатора BF, который глючит на неправильном коде. В этом топике я расскажу о языке программирования Brainfuck и напишу интерпретатор для него.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/128673/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Sun, 18 Sep 2011 17:09:06 GMT</pubDate>
		<author>powder96</author>
		<category>интерпретатор</category><category>язык программирования</category><category>эзотерический</category><category>brainfuck</category>
	</item>
	
	
	
	
	
	

		
	<item>		
		<title><![CDATA[PHP / Релевантный поиск на php]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/128590/</guid>
		<link>http://habrahabr.ru/blogs/php/128590/</link>			
		<description><![CDATA[Хочу поделиться с Вами, как можно сделать более менее хороший релевантный поиск по сайту с помощью php в связке с mysql.<br/>
<br/>
Я видел много сайтов, на которых поиск идет по средствам деления фразы на слова и выводились результаты не те, которые нужны пользователю. Я решил написать скрипт, который будет выдавать результаты в более релевантном порядке.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/128590/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Fri, 16 Sep 2011 14:18:55 GMT</pubDate>
		<author>koksharov</author>
		<category>php</category><category>релевантность</category><category>релевантный поиск</category><category>обработка данных</category>
	</item>
	
	
	
	
	
	

		
	<item>		
		<title><![CDATA[PHP / Подключение файлов — проблемы и решения]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/127816/</guid>
		<link>http://habrahabr.ru/blogs/php/127816/</link>			
		<description><![CDATA[Полагаю, многие из тех, кто более-менее профессионально работал с PHP, сталкивались с проблемами, связанными с подключением файлов. Будем честны друг перед другом — стандартный механизм PHP для выполнения этой операции обладает рядом конструктивных недостатков. Вследствие этих недостатков программисты не могут в полной мере контролировать процесс подключения файлов и даже не всегда могут уверенно утверждать, что необходимый файл был подключён. Некоторые по этому поводу заявляют, что писать код надо так, чтобы подключение всегда было успешным, однако ситуации бывают разные. Поскольку я известный перфекционист, я не мог просто отложить эту проблему на потом, когда столкнулся с ней в очередной (вроде бы четвёртый) раз. Я потратил достаточно времени, чтобы найти решения тех проблем, о которых знал, и сейчас я хочу этими решениями поделиться.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/127816/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Tue, 06 Sep 2011 10:08:01 GMT</pubDate>
		<author>NectarIn</author>
		<category>подключение файлов</category><category>include</category><category>include_once</category><category>require</category><category>require_once</category><category>warning</category>
	</item>
	
	
	
	
	
	

	
		
	<item>		
		<title><![CDATA[PHP / [Из песочницы] И снова MVC]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/127798/</guid>
		<link>http://habrahabr.ru/blogs/php/127798/</link>			
		<description><![CDATA[Привет Хаброобществу.<br/>
<br/>
Однажды мне на глаза попалась статья с хабра <a href="http://habrahabr.ru/blogs/php/31270/">ссылка</a>. Попробовав ту систему, пришел к выводу, что у нее много недостатков, да и перевод оригинальной статьи присутствовал не полностью. Да, статья старючая, но в то же время хотелось написать свой небольшой фреймворк для создания простых и средних по сложности сайтов. Так как тащить с собой 2-3 мегабайта какого-либо серьезного фреймворка для создания сайта-визитки считаю кощунством (хоть и не всегда).<br/>
<br/>
Вообщем, решил исправить бросающиеся в глаза недостатки и полученным результатом поделиться с хаброжителями.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/127798/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Mon, 05 Sep 2011 17:03:04 GMT</pubDate>
		<author>cooperua</author>
		<category>php</category><category>mvc framework</category><category>oop</category>
	</item>
	
	
	
	
	

	
	
	
	
		
	<item>		
		<title><![CDATA[PHP / [Опрос] Используете ли вы FirePHP в своих проектах?]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/126990/</guid>
		<link>http://habrahabr.ru/blogs/php/126990/</link>
		<description><![CDATA[]]></description>
		
		<pubDate>Wed, 24 Aug 2011 10:58:18 GMT</pubDate>
		<author>Miraage</author>
		<category>firephp</category><category>отладка</category>
	</item>
	
	

	
		
	<item>		
		<title><![CDATA[PHP / [Из песочницы] PHP-Матрёшки или Шаблоны для любого сайта из 8 строчек]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/126980/</guid>
		<link>http://habrahabr.ru/blogs/php/126980/</link>			
		<description><![CDATA[Я расскажу о своих шаблонах (из восьми строчек), которые придумал в 2003 году и с тех пор они меня не подводили и не требовали каких-либо улучшений.<br/>
<br/>
Суть шаблонов – это принцип матрешки, когда маленькая матрёшка — это часть той что побольше.<br/>
На практике это выглядит так: мы указываем имя первого пхп-шаблона, внутри которого прописываем имя вышестоящего шаблона, который, в свою очередь, также может указать на своего пхп-родителя и т.д.<br/>
<br/>
<img src="http://img13.imageshost.ru/img/2011/08/21/image_4e511374dbc2e.gif" alt="image"/><br/>
<br/>
Физически это выглядит так. У меня в апаче настроен хост <code><a href="http://start.local">http://start.local</a></code> с домашней директорией для браузеров <code>/home/start.local/www</code>, где лежит стартовый корневой файл <code>/home/start.local/www/index.php</code>, который содержит в себе всего одну строчку:<br/>
<br/>
<pre><code class="php">&lt;?load::integration('main.tpl');?&gt;</code></pre><br/>
<br/>
Этот текст надо читать так: класс load вызывает функцию (метод) <code>load::integration()</code>, в которую передает один параметр – строчку <code>'main.tpl'</code>.<br/>
<br/>
Где, main.tpl – это имя файла первого пхп-шаблона, а функция <code>load::integration()</code> содержит механизм, который позволяет обрабатывать указанный шаблон. А конкретнее, он позволяет нам прописывать в шаблоне main.tpl, другой шаблон, например default.tpl, в который будет вложен результат выполнения mail.tpl. В свою очередь default.tpl, также может указать вышестоящий шаблон (как изображено на рисунке). Если же вышестоящих шаблонов не указано, то функция <code>load::integration()</code> остановит сборку шаблонов и отдаст общий результат выполнения всех шаблонов в браузер.<br/>
<br/>
Далее я расскажу как все работает и дам ссылку скачать код.<br/>
<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/126980/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Wed, 24 Aug 2011 10:14:57 GMT</pubDate>
		<author>Paka</author>
		<category>php</category><category>шаблоны</category>
	</item>
	
	
	
	
	

		
	<item>		
		<title><![CDATA[PHP / LiqPay и PHP4 – опыт внедрения и вариант решения проблем]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/124628/</guid>
		<link>http://habrahabr.ru/blogs/php/124628/</link>			
		<description><![CDATA[Добрый день Хабра-сообщество!<br/>
Столкнулся я с системой платежей liqpay. В принципе, система создает очень приятное первое впечатление. <br/>
Но при попытке её интеграции на сайт я столкнулся с несколькими недостатками и проблемами. <br/>
Их описанием и решением я хотел бы с вами поделиться.<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/124628/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Tue, 26 Jul 2011 12:50:55 GMT</pubDate>
		<author>Kronius</author>
		<category>liqpay</category><category>опыт</category><category>php</category><category>sha1</category><category>двоичниые строки</category>
	</item>
	
	
	
	
	
	

		
	<item>		
		<title><![CDATA[PHP / Быстрый XSL в PHP]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/117450/</guid>
		<link>http://habrahabr.ru/blogs/php/117450/</link>			
		<description><![CDATA[XSL — широко известный в узких кругах шаблонизатор. Известен он широко, но используется редко — как было сказано однажды на хабре — у него высокий порог входа, и я с этим полностью согласен. Нужно понимать зачем его стоит использовать, нужно уметь работать с XML, уметь писать XPath запросы и т.д.<br/>
<br/>
Зато в результате мы получаем удобную и гибкую верстку, подсказки, подсветки и строгий контроль валидности того что вы пишете. ) Есть и минусы при разработке. Лично для меня основной минус при разработке — низкая производительность XSL. И тем, кто думаю что это не так — предлагаю под катом убедиться в обратно. А также, под катом и варианты решения проблемы.<br/>
<div class="habracut"> <a class="habracut" href="http://habrahabr.ru/blogs/php/117450/#habracut">Читать дальше &rarr;</a> </div>]]></description>
		
		<pubDate>Thu, 14 Apr 2011 04:04:03 GMT</pubDate>
		<author>DenisO</author>
		<category>php</category><category>xsl</category><category>xslt</category><category>xslcache</category><category>производительность</category>
	</item>
	
	
	
	
	
	

	
	
	
	
		
	<item>		
		<title><![CDATA[PHP / [Опрос] Если Вы программируете на PHP, в основе Вашего стиля кодирования лежит]]></title>
		<guid isPermaLink="true">http://habrahabr.ru/blogs/php/116875/</guid>
		<link>http://habrahabr.ru/blogs/php/116875/</link>
		<description><![CDATA[]]></description>
		
		<pubDate>Tue, 05 Apr 2011 09:35:29 GMT</pubDate>
		<author>tangro</author>
		<category>php</category><category>coding style</category>
	</item>
	
	

	

	
	
	
	
	
</channel>
</rss>

