<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>Просто про веб технологии</title>
	
	<link>http://pro100pro.com</link>
	<description>Про PHP, MySQL, Sphinx и Zend Framework, про архитектуру и производителность, про высокие нагрузки и масштабирование</description>
	<lastBuildDate>Tue, 09 Feb 2010 15:18:19 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/pro100pro" /><feedburner:info uri="pro100pro" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Настраиваем PHPUnit тесты в Zend Framework 1.10</title>
		<link>http://feedproxy.google.com/~r/pro100pro/~3/Y-wx6Z2wuvQ/nastraivaem-phpunit-testy-v-zend-framework-1-10</link>
		<comments>http://pro100pro.com/nastraivaem-phpunit-testy-v-zend-framework-1-10#comments</comments>
		<pubDate>Tue, 09 Feb 2010 15:00:36 +0000</pubDate>
		<dc:creator>Yaroslav Vorozhko</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Testing]]></category>
		<category><![CDATA[ZendFramework]]></category>

		<guid isPermaLink="false">http://pro100pro.com/?p=422</guid>
		<description><![CDATA[В документации к Zend Framework есть описание как создавать PHPUnit тесты для контроллеров и для баз данных. Но, к сожалению они не объясняют как настроить приложения для выполнения Unit тестов. Попробуем создать среду окружения для выполнения тестов. В общем, если вы выполните все инструкции и скопируете исходные коды, то у вас все должно заработать. Если же что то не работает, спрашивайте в комментариях к статье.]]></description>
			<content:encoded><![CDATA[<p>В документации к Zend Framework есть описание как создавать PHPUnit тесты для контроллеров и для баз данных. Но, к сожалению они не объясняют как настроить приложения для выполнения Unit тестов.<br />
В данной статье приведены шаги по настройке Unit тестов:<br />
1. Установка phpunit<br />
2. Установка xdebug<br />
3. Настройка phpunit.xml<br />
4. Создание TestHelper.php для инициализации приложения<br />
5. Написание и выполнение простого теста</p>
<p>В первую очередь для выполнения тестов нам понадобится phpunit, который можео установить из PEAR пакета PHPUnit.</p>
<div class="igBar"><span id="lcode-1"><a href="#" onclick="javascript:showPlainTxt('code-1'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-1">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$ pear channel-discover pear.<span style="">phpunit</span>.<span style="">de</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$ pear config-set preferred_state alpha</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$ pear install phpunit/PHPUnit</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">or you may wish to install all the optional supporting packages:</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$ nano /usr/local/php5/etc/php.<span style="">ini</span>&nbsp; <span style="color:#FF9933; font-style:italic;">// memory_limit = 32M; change this to at least 32M</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">// if you get a permission denied error on the ZF community server, send an email to fw-servers mail list</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$ pear install --alldeps&nbsp; phpunit/PHPUnit </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Следующим шагом установим xdebug. Xdebug мы будем использовать для проверки покрытие кода тестами.</p>
<div class="igBar"><span id="lcode-2"><a href="#" onclick="javascript:showPlainTxt('code-2'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-2">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$ pecl install xdebug-beta </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Теперь откройте ваш php.ini файл и пропишите загрузку xdebug.</p>
<div class="igBar"><span id="lcode-3"><a href="#" onclick="javascript:showPlainTxt('code-3'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-3">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">zend_extension=/usr/lib/..../..../php5/<span style="color:#800000;color:#800000;">20060613</span>/xdebug.<span style="">so</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>(...)<br/>Read the rest of <a href="http://pro100pro.com/nastraivaem-phpunit-testy-v-zend-framework-1-10">Настраиваем PHPUnit тесты в Zend Framework 1.10</a> (108 words)</p>
<hr />
<p><small>© Yaroslav Vorozhko  for <a href="http://pro100pro.com">Просто про веб технологии</a>, 2010. |
<a href="http://pro100pro.com/nastraivaem-phpunit-testy-v-zend-framework-1-10">Permalink</a> |
<a href="http://pro100pro.com/nastraivaem-phpunit-testy-v-zend-framework-1-10#comments">3 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://pro100pro.com/nastraivaem-phpunit-testy-v-zend-framework-1-10&title=Настраиваем PHPUnit тесты в Zend Framework 1.10">del.icio.us</a>
<br/>
Post tags: <br/>
</small></p><img src="http://feeds.feedburner.com/~r/pro100pro/~4/Y-wx6Z2wuvQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pro100pro.com/nastraivaem-phpunit-testy-v-zend-framework-1-10/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		<feedburner:origLink>http://pro100pro.com/nastraivaem-phpunit-testy-v-zend-framework-1-10</feedburner:origLink></item>
		<item>
		<title>Ускоряем PHP с HipHop</title>
		<link>http://feedproxy.google.com/~r/pro100pro/~3/IQxrywamxhc/uskoryaem-php-s-hiphop</link>
		<comments>http://pro100pro.com/uskoryaem-php-s-hiphop#comments</comments>
		<pubDate>Thu, 04 Feb 2010 10:09:01 +0000</pubDate>
		<dc:creator>Yaroslav Vorozhko</dc:creator>
				<category><![CDATA[HipHop]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Performance]]></category>
		<category><![CDATA[C plus plus]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Zend Engine]]></category>

		<guid isPermaLink="false">http://pro100pro.com/?p=417</guid>
		<description><![CDATA[Сегодня Facebook анонсировал релиз HipHop.
Коротко, что такое HipHop для PHP:

HipHop - это компилятор кода PHP в C++. Т.е. он преобразует PHP код в C++ код для дальнейшей компиляции. Это не другой язык. И это не компилятор времени исполнения (JIT).
HipHop будет выпущен Facebook под opensource лицензией, под такой же как и основной код PHP. Facebook возлагает [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://developers.facebook.com/news.php?blog=1&amp;story=358">Сегодня Facebook анонсировал релиз HipHop</a>.</p>
<p>Коротко, что такое HipHop для PHP:</p>
<ul>
<li>HipHop - это компилятор кода PHP в C++. Т.е. он преобразует PHP код в C++ код для дальнейшей компиляции. Это не другой язык. И это не компилятор времени исполнения (JIT).</li>
<li>HipHop будет выпущен Facebook под opensource лицензией, под такой же как и основной код PHP. Facebook возлагает надежды, что разработчики улучшать HipHop и расширят его функциональность, таким образом HipHop сможет заменить больший набор функций PHP.</li>
<li>HipHop был одним из проектов в Facebook по улучшению его производительности. Все таки Facebook, второй сайт по объему траффика в интерент и в основном построенный на PHP. HipHop запущен на большинстве LAMP PHP серверах Facebook и в среднем улучшил производительность этих серверов в два раза.</li>
<li>HipHop достигает этого, путем исследования вашего PHP приложения и на его основе строить C++ проект. C++ проект потом компилируется и запускается на собственном веб серврере. Это дает возможность исключить PHP Zend engine и Apache из цепочки.</li>
<li>Учитывая что, некоторые возможности PHP не поддерживаются. Также, дополнения к PHP написанные на C, должны быть переписаны в HipHop C++ дополнения.</li>
<li>Преимущества в скороости HipHop достигаются благодаря статическому анализу, который парсит ваш PHP код ищя пути преобразования динамических частей в статические.<br />
Учитывая это, ваше улучшение производительности, может сильно варьроваться - более структурированный код получить наибольший прирост в производительности.</li>
</ul>
<p>Что значит HipHop для вас:</p>
<ul>
<li>Если ваш проект использует sharing хостинг - то <strong>ничего</strong>.</li>
<li>Если ваш проект использует 2 или менее серверов - то <strong>ничего</strong>.</li>
<li>Если у вас нет выделенного development и deployment окружения и у вас нет разработчика знающего C++ - то <strong>ничего</strong>.</li>
<li>Если вы разработчик open source приложения - то <strong>немного</strong>.</li>
<li>Если вы shared хостинг компания - то <strong>немного</strong>.</li>
<li>Если PHP не bottleneck вашего приложения - то <strong>пока еще ничего</strong>.</li>
<li>Если ваше приложения использует много серверов, и в основном на них работает PHP, а также у вас есть все исходники PHP кода, у вас есть немного знаний C/C++, тогджа ответ <strong>возможно</strong>.</li>
<li>Если вы разрабатываете php framework, то ответ <strong>иногда</strong>.</li>
<li>Если у вас есть сильно-связанные части архитектуры, которые удовлетворяют требованиям выше и эти части слабо связаны (через API) с остальной системой, то ответ <strong>много</strong> <strong>что</strong>.</li>
<li>Если вы обдумываете какой язык выбрать для реализации вашей системы, то ответ <strong>очень много</strong>.</li>
<li>Если вы обдумываете аргумент, переписать весь сайт на другой язык, то <strong>вы потеряли свой аргумент</strong>.</li>
</ul>
<p>Есть очень много языковы возможностей, хороших или плохих, которые PHP должен поддерживать, а HipHop нет. Потому как HipHop уникальное решение, он <strong>никгода</strong> не заменит Zend Engine.</p>
<p>Статья является частичным переводом статьи Terry Chay <a href="http://terrychay.com/article/hiphop-for-faster-php.shtml">Faster PHP fo shizzle—HipHop for PHP</a></p>
<hr />
<p><small>© Yaroslav Vorozhko  for <a href="http://pro100pro.com">Просто про веб технологии</a>, 2010. |
<a href="http://pro100pro.com/uskoryaem-php-s-hiphop">Permalink</a> |
<a href="http://pro100pro.com/uskoryaem-php-s-hiphop#comments">One comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://pro100pro.com/uskoryaem-php-s-hiphop&title=Ускоряем PHP с HipHop">del.icio.us</a>
<br/>
Post tags: <a href="http://pro100pro.com/tag/c-plus-plus" rel="tag">C plus plus</a>, <a href="http://pro100pro.com/tag/facebook" rel="tag">Facebook</a>, <a href="http://pro100pro.com/tag/hiphop" rel="tag">HipHop</a>, <a href="http://pro100pro.com/tag/performance" rel="tag">Performance</a>, <a href="http://pro100pro.com/tag/php" rel="tag">PHP</a>, <a href="http://pro100pro.com/tag/zend-engine" rel="tag">Zend Engine</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/pro100pro/~4/IQxrywamxhc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pro100pro.com/uskoryaem-php-s-hiphop/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://pro100pro.com/uskoryaem-php-s-hiphop</feedburner:origLink></item>
		<item>
		<title>В конце марта 2010 г. в Санкт-Петербурге пройдет первая в России конференция по Zend Framework</title>
		<link>http://feedproxy.google.com/~r/pro100pro/~3/RUdDVqxozz8/v-konce-marta-2010-g-v-sankt-peterburge-projdet-pervaya-v-rossii-konferenciya-po-zend-framework</link>
		<comments>http://pro100pro.com/v-konce-marta-2010-g-v-sankt-peterburge-projdet-pervaya-v-rossii-konferenciya-po-zend-framework#comments</comments>
		<pubDate>Mon, 01 Feb 2010 07:37:51 +0000</pubDate>
		<dc:creator>Yaroslav Vorozhko</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[PHPConf]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://pro100pro.com/?p=413</guid>
		<description><![CDATA[
На днях закончился прием тезисов по планируемым докладам. Примечательно, что в состав докладчиков вошли ведущие участники русскоязычного сообщества ZF, опытнейшие специалисты и лично один из создателей фрэймворка!

На данный момент уже открыта предварительная регистрация на конференцию! Для решения ряда вопросов организаторам очень важно сейчас понять приблизительное количество человек, которые смогут посетить конференцию или каким-то иным образом [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.zfconf.ru/" target="_blank"><img src="http://lh5.ggpht.com/_LTrMB58vSzk/S2XRVWUWqMI/AAAAAAAAABw/ItmlHrVIMVs/s800/205x175.png" width="205" height="175"></a></p>
<p>На днях закончился прием тезисов по планируемым докладам. Примечательно, что в состав докладчиков вошли ведущие участники русскоязычного сообщества ZF, опытнейшие специалисты и лично один из создателей фрэймворка!</p>
<p>
На данный момент уже открыта <a href="http://www.zfconf.ru/pre-registration.php" target="_blank"><strong>предварительная регистрация</strong></a> на конференцию! Для решения ряда вопросов организаторам <strong>очень важно</strong> сейчас понять приблизительное количество человек, которые смогут посетить конференцию или каким-то иным образом принять участие в ней.</p>
<p>Каждый предстоящий доклад возможно обсудить на форуме ZF-сообщества. Ваше мнение очень важно для авторов!</p>
<p>
<strong>Планируемые доклады</strong></p>
<p>
<strong><a href="http://zendframework.ru/forum/index.php?topic=2269.0" target="_blank">Жизненный цикл предложений (proposals) в проекте Zend Framework</a></strong><br />
<br />
Александр Веремьев (<a target="_blank" href="http://www.zend.com">Zend Technologies</a>, Zend Framework Core команда) </p>
<p><strong><a href="http://zendframework.ru/forum/index.php?topic=2270.0" target="_blank">Zend_Search_Lucene в деталях</a></strong> </p>
<p>
Александр Веремьев (<a target="_blank" href="http://www.zend.com">Zend Technologies</a>, Zend Framework Core команда) </p>
<p><strong><a href="http://zendframework.ru/forum/index.php?topic=2271.0" target="_blank">Zend Framework и производительность</a></strong><br />
<br />
Александр Махомет (создатель сообщества <a target="_blank" href="http://zendframework.ru">ZendFramework.ru</a>) </p>
<p><strong><a href="http://zendframework.ru/forum/index.php?topic=2272.0" target="_blank">Zend Framework и MVC, &laquo;толстая&raquo; модель</a></strong> </p>
<p>
Александр Стешенко (<a target="_blank" href="http://norada.com">Norada Corporation</a>, PHP-разработчик) </p>
<p><strong> <a href="http://zendframework.ru/forum/index.php?topic=2273.0" target="_blank">ФотоСтрана.ru: Прототипирование с использованием ZF (история боевого применения Zend Framework в highload-проекте)</a></strong><br />
<br />
Леонид Жаворонков (<a target="_blank" href="http://fotostrana.ru">ФотоСтрана.ru</a>, тимлид) </p>
<p><strong><a href="http://zendframework.ru/forum/index.php?topic=2274.0" target="_blank">Использование очередей сообщений в повседневных проектах</a></strong><br />
<br />
Денис Баклыков (<a href="http://obnovlenie.ru" target="_blank">Обновление</a>, веб-разработчик) </p>
<p><strong><a href="http://zendframework.ru/forum/index.php?topic=2275.0" target="_blank">Zend Framework и Doctrine</a></strong><br />
<br />
Степан Танасийчук (руководитель веб-студии <a target="_blank" href="http://stfalcon.com">stfalcon.com</a>) </p>
<p><strong><a href="http://zendframework.ru/forum/index.php?topic=2276.0" target="_blank">Zend Framework и мультиязычность</a></strong><br />
<br />
Степан Танасийчук (руководитель веб-студии <a target="_blank" href="http://stfalcon.com">stfalcon.com</a>) </p>
<p><strong><a href="http://zendframework.ru/forum/index.php?topic=2277.0" target="_blank">История проекта e-Штаб</a></strong><br />
<br />
Анатолий Ларин (<a target="_blank" href="http://www.e-legion.com">e-Легион</a>, веб-программист) </p>
<p><strong><a href="http://zendframework.ru/forum/index.php?topic=2278.0" target="_blank">Что нового несет нам Zend Framework 2.0?</a></strong><br />
<br />
Надежда Блинова (<a target="_blank" href="http://www.wizartech.ru">Wizartech</a>, веб-программист), Георгий Туревич (<a href="http://www.wizartech.ru" target="_blank">Wizartech</a>, ведущий веб-программист) </p>
<p><strong><a href="http://zendframework.ru/forum/index.php?topic=2279.0" target="_blank">Интеграция Zend Framework c Javascript-фрэймворками jQuery и Dojo Toolkit</a></strong><br />
<br />
Георгий Туревич (<a href="http://www.wizartech.ru" target="_blank">Wizartech</a>, ведущий веб-программист)</p>
<p>
Смело обсуждайте доклады и <a href="http://www.zfconf.ru/pre-registration.php" target="_blank"><strong>регистрируйтесь</strong></a>!</p>
<p>
За последними новостями можно следить здесь:<br />
<strong>RSS-канал:</strong> <a href="http://feeds.feedburner.com/zfconf" target="_blank">feeds.feedburner.com/zfconf</a><br />
<strong>Twitter:</strong> <a href="http://twitter.com/zfconf" target="_blank">@zfconf</a><br />
<strong>Группа Вконтакте:</strong> <a href="http://vkontakte.ru/club14951507" target="_blank">vkontakte.ru/club14951507</a></p>
<p>
К участию также приглашаются информационные и финансовые спонсоры.</p>
<hr />
<p><small>© Yaroslav Vorozhko  for <a href="http://pro100pro.com">Просто про веб технологии</a>, 2010. |
<a href="http://pro100pro.com/v-konce-marta-2010-g-v-sankt-peterburge-projdet-pervaya-v-rossii-konferenciya-po-zend-framework">Permalink</a> |
<a href="http://pro100pro.com/v-konce-marta-2010-g-v-sankt-peterburge-projdet-pervaya-v-rossii-konferenciya-po-zend-framework#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://pro100pro.com/v-konce-marta-2010-g-v-sankt-peterburge-projdet-pervaya-v-rossii-konferenciya-po-zend-framework&title=В конце марта 2010 г. в Санкт-Петербурге пройдет первая в России конференция по Zend Framework">del.icio.us</a>
<br/>
Post tags: <a href="http://pro100pro.com/tag/events" rel="tag">Events</a>, <a href="http://pro100pro.com/tag/phpconf" rel="tag">PHPConf</a>, <a href="http://pro100pro.com/tag/zend-framework" rel="tag">Zend Framework</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/pro100pro/~4/RUdDVqxozz8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pro100pro.com/v-konce-marta-2010-g-v-sankt-peterburge-projdet-pervaya-v-rossii-konferenciya-po-zend-framework/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pro100pro.com/v-konce-marta-2010-g-v-sankt-peterburge-projdet-pervaya-v-rossii-konferenciya-po-zend-framework</feedburner:origLink></item>
		<item>
		<title>IE7 не показывает скрытый html после удаления CSS класса который его скрывал с помощью jQuery</title>
		<link>http://feedproxy.google.com/~r/pro100pro/~3/-yJ0YkhWHbc/ie7-display-bug-css-jquery-solution</link>
		<comments>http://pro100pro.com/ie7-display-bug-css-jquery-solution#comments</comments>
		<pubDate>Thu, 24 Dec 2009 13:36:13 +0000</pubDate>
		<dc:creator>Yaroslav Vorozhko</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Tips And Tricks]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[IE6]]></category>
		<category><![CDATA[IE7]]></category>
		<category><![CDATA[jQuery]]></category>

		<guid isPermaLink="false">http://pro100pro.com/?p=411</guid>
		<description><![CDATA[У IE7 и IE6 есть такая особенность, что когда вы удалете класс, который скрывал (display:none) содержимое строки таблицы (тег tr) с помощью jQuery метода removeClass(), то сожержимое строки таблицы (тег tr) все равно не будет отображаться. ]]></description>
			<content:encoded><![CDATA[<h3>Проблема</h3>
<p>У IE7 и IE6 есть такая особенность, что когда вы удалете класс, который скрывал (display:none) содержимое строки таблицы (тег tr) с помощью jQuery метода removeClass(), то сожержимое строки таблицы (тег tr) все равно не будет отображаться. </p>
<h3>Пример</h3>
<p>Есть у нас форма в таблице, у которой первые две строки видны, а остальные спрятаны и должны отображаються по нажатию на ссылку.</p>
<div class="igBar"><span id="lcode-9"><a href="#" onclick="javascript:showPlainTxt('code-9'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-9">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;table&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;tr&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;td&gt;Your name: &lt;/td&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;td&gt;&lt;input type=<span style="color:#CC0000;">"text"</span> name=<span style="color:#CC0000;">'name'</span>&gt;&lt;/td&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;/tr&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;tr&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;td&gt;Your email: &lt;/td&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;td&gt;&lt;input type=<span style="color:#CC0000;">"text"</span> name=<span style="color:#CC0000;">'email'</span>&gt;&lt;/td&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;/tr&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;tr&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;td colspan=<span style="color:#CC0000;">'2'</span>&gt;&lt;a href=<span style="color:#CC0000;">"javascript:void(0);"</span> onClick=<span style="color:#CC0000;">"showAdvFields();"</span> id=<span style="color:#CC0000;">"showAdvFields"</span>&gt;+ Show advanced options&lt;/a&gt;&lt;/td&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;/tr&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;tr class=<span style="color:#CC0000;">'hide'</span>&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;td&gt;Your twitter: &lt;/td&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;td&gt;&lt;input type=<span style="color:#CC0000;">"text"</span> name=<span style="color:#CC0000;">'twitter'</span>&gt;&lt;/td&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;/tr&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;tr&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;td&gt;&lt;/td&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &lt;td&gt;&lt;input type=<span style="color:#CC0000;">"submit"</span> value=<span style="color:#CC0000;">'Submit'</span>&gt;&lt;/td&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;/tr&gt;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;/table&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;scripty type=<span style="color:#CC0000;">"text/javascript"</span>&gt;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#FF9933; font-style:italic;">//$j - это ссылка на jQuery.</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">function showAdvFields<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; if <span style="color:#006600; font-weight:bold;">&#40;</span>$j<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"tr"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">hasClass</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'hide'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $j<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"tr.hide"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">addClass</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'showAdv'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $j<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"tr.hide"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">removeClass</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'hide'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $j<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"#showAdvFields"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">html</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">" - Hide advanced options"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span> else <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $j<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"tr.showAdv"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">addClass</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'hide'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $j<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"tr.showAdv"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">removeClass</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'showAdv'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $j<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"#showAdvFields"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">html</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">" + Show advanced options"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&lt;/script&gt; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h3>Решение</h3>
<p>Во первых перестаньте использовать барузер Internet Explorere и переходите на FireFox и Google Chrome :). А если у вас нет выбора, то решение использовать функцию jQuery show, которая решает проблему совместимости с IE.<br />
Вот так я изменил метод показа и скрытия строки таблицы.</p>
<div class="igBar"><span id="lcode-10"><a href="#" onclick="javascript:showPlainTxt('code-10'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-10">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">function showAdvFields<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; if <span style="color:#006600; font-weight:bold;">&#40;</span>$j<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"tr"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">hasClass</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'hide'</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $j<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"tr.hide"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">addClass</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'showAdv'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $j<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"tr.hide"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">show</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $j<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"tr.hide"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">removeClass</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'hide'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $j<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"#showAdvFields"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">html</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">" - Hide advanced options"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span> else <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $j<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"tr.showAdv"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">addClass</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'hide'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $j<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"tr.showAdv"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">hide</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $j<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"tr.showAdv"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">removeClass</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'showAdv'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $j<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">"#showAdvFields"</span><span style="color:#006600; font-weight:bold;">&#41;</span>.<span style="">html</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">" + Show advanced options"</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<h3>Вывод</h3>
<p>Не используйте доморощенные решения, читайте документацию и используйте стандартные методы. Я добавил вызов $j("tr.hide").show(), что помогло решить проблему показа и вызвов $j("tr.showAdv").hide() что решило проблему скрытия строки.</p>
<p>Можно конечно обойтись и без класса hide, но такое решения было очень практично.</p>
<hr />
<p><small>© Yaroslav Vorozhko  for <a href="http://pro100pro.com">Просто про веб технологии</a>, 2009. |
<a href="http://pro100pro.com/ie7-display-bug-css-jquery-solution">Permalink</a> |
<a href="http://pro100pro.com/ie7-display-bug-css-jquery-solution#comments">One comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://pro100pro.com/ie7-display-bug-css-jquery-solution&title=IE7 не показывает скрытый html после удаления CSS класса который его скрывал с помощью jQuery">del.icio.us</a>
<br/>
Post tags: <a href="http://pro100pro.com/tag/bug" rel="tag">bug</a>, <a href="http://pro100pro.com/tag/css" rel="tag">CSS</a>, <a href="http://pro100pro.com/tag/ie6" rel="tag">IE6</a>, <a href="http://pro100pro.com/tag/ie7" rel="tag">IE7</a>, <a href="http://pro100pro.com/tag/javascript" rel="tag">Javascript</a>, <a href="http://pro100pro.com/tag/jquery" rel="tag">jQuery</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/pro100pro/~4/-yJ0YkhWHbc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pro100pro.com/ie7-display-bug-css-jquery-solution/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		<feedburner:origLink>http://pro100pro.com/ie7-display-bug-css-jquery-solution</feedburner:origLink></item>
		<item>
		<title>Sphinx Search плагин поиска для Wordpress – поиск с Sphinx Search для начинающих</title>
		<link>http://feedproxy.google.com/~r/pro100pro/~3/fxZdrSVDu2A/sphinx-search-plugin-poiska-dlya-wordpress-sphinx-dlya-nachinaushih</link>
		<comments>http://pro100pro.com/sphinx-search-plugin-poiska-dlya-wordpress-sphinx-dlya-nachinaushih#comments</comments>
		<pubDate>Wed, 23 Dec 2009 15:11:56 +0000</pubDate>
		<dc:creator>Yaroslav Vorozhko</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Sphinx Search]]></category>
		<category><![CDATA[WPSphinx plugin]]></category>
		<category><![CDATA[Plugin]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://pro100pro.com/?p=405</guid>
		<description><![CDATA[Два года назад Петр Зайцев из Percona попросил меня написать ему плагин поиска для WordPress используя Spinx Search. Сейчас этот модуль работает на mysqlperformanceblog.com.

Данная статья будет полезна тем кто только начинает знакомится с Sphinx Search. Ее можно использовать  как начальное руководство для написания простого поисковика на Sphinx Search.]]></description>
			<content:encoded><![CDATA[<p>Два года назад Петр Зайцев из <a title="Percona Inc." href="http://www.percona.com" >Percona</a> попросил меня написать ему <a title="плагин поиска для WordPress на Spihnx Search" href="https://launchpad.net/wp-sphinx-plugin" rel="nofollow">плагин поиска для WordPress</a> используя <a title="Sphinx Search" href="http://www.sphinxsearch.com/" rel="nofollow">Spinx Search</a>. Сейчас этот модуль работает на <a title="MySQL Performance Blog" href="http://www.mysqlperformanceblog.com/" rel="nofollow">mysqlperformanceblog.com</a>.</p>
<p>Данная статья будет полезна тем кто только начинает знакомится с Sphinx Search. Ее можно использовать  как начальное руководство для написания простого поисковика на Sphinx Search.</p>
<p>Возможности плагина:</p>
<ul>
<li>Быстрый поиск, ну это и понятно, мы ведь используем Sphinx Search</li>
<li>Возможность использовать расширенный синтаксис поиска (<a href="http://www.sphinxsearch.com/doc.html#extended-syntax" rel="nofollow">http://www.sphinxsearch.com/doc.html#extended-syntax</a>)</li>
<li>Сортировка результатов поиска по дате или по релевантности</li>
<li>Поиск по постам, комментариям или страницам. Это отличает этот плагин от стандартного поиска на WP, который не производит поиск по комментариям и страницам. А также многие другие поисковые плагины не имеют такой возможности.</li>
<li>Есть возможность исключить из результатов поска комментарии, страницы или посты</li>
<li>И многие другие вкусности, про которые вы можете узнать на странице плагина</li>
</ul>
<p>Все это позволяет нам делать Sphinx Search, и сейчас мы разеберем как это реализовано.</p>
<h3>Конфигурационный файл</h3>
<p>В первую очередь нам надо знать как устроен индекс. (sphinx.conf можно найти в каталоге rep/sphinx.conf)</p>
<p>Мы использовали самое простое решение это один монолитный индекс для всех данных: постов, страниц и комментариев. Формируется такой индекс единым SQL запросом, который приводить я тут не буду, он очень длинный и нас сейчас он не интересует (это все таки статья про Spihnx Search, а не про MySQL :) ), но посмотреть его можно в том же sphinx.conf.</p>
<p>Единственное, что нам стоит знать это какие атрибуты у нас есть:</p>
<ul>
<li>comment_ID</li>
<li>post_ID</li>
<li>isPost</li>
<li>isComment</li>
<li>isPage</li>
<li>post_type</li>
<li>date_added</li>
</ul>
<p>Атрибуты isPost, isComment и isPage отвечают за тип источника. date_added содержит дату добавления данных.</p>
<h3>Поиск</h3>
<p>Теперь рассмотрим как делать поиск, фильтрацию и сортировку используя атрибуты.<br />
Пример:</p>
<div class="igBar"><span id="lcode-11"><a href="#" onclick="javascript:showPlainTxt('code-11'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-11">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">if <span style="color:#006600; font-weight:bold;">&#40;</span> empty<span style="color:#006600; font-weight:bold;">&#40;</span>$this-&gt;<span style="">params</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC0000;">'search_comments'</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $this-&gt;<span style="">config</span>-&gt;<span style="">sphinx</span>-&gt;<span style="">SetFilter</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'isComment'</span>, array<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">if <span style="color:#006600; font-weight:bold;">&#40;</span> empty<span style="color:#006600; font-weight:bold;">&#40;</span>$this-&gt;<span style="">params</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC0000;">'search_pages'</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $this-&gt;<span style="">config</span>-&gt;<span style="">sphinx</span>-&gt;<span style="">SetFilter</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'isPage'</span>, array<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">if <span style="color:#006600; font-weight:bold;">&#40;</span> empty<span style="color:#006600; font-weight:bold;">&#40;</span>$this-&gt;<span style="">params</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC0000;">'search_posts'</span><span style="color:#006600; font-weight:bold;">&#93;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $this-&gt;<span style="">config</span>-&gt;<span style="">sphinx</span>-&gt;<span style="">SetFilter</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'isPost'</span>, array<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#800000;color:#800000;">0</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">if <span style="color:#006600; font-weight:bold;">&#40;</span> $this-&gt;<span style="">params</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC0000;">'search_sortby'</span><span style="color:#006600; font-weight:bold;">&#93;</span> == <span style="color:#CC0000;">'date'</span> <span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#123;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $this-&gt;<span style="">config</span>-&gt;<span style="">sphinx</span>-&gt;<span style="">SetSortMode</span><span style="color:#006600; font-weight:bold;">&#40;</span>SPH_SORT_ATTR_DESC, <span style="color:#CC0000;">'date_added'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;<span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span> else <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $this-&gt;<span style="">config</span>-&gt;<span style="">sphinx</span>-&gt;<span style="">SetSortMode</span><span style="color:#006600; font-weight:bold;">&#40;</span>SPH_SORT_RELEVANCE<span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$res = $this-&gt;<span style="">config</span>-&gt;<span style="">sphinx</span>-&gt;<span style="">Query</span> <span style="color:#006600; font-weight:bold;">&#40;</span> $this-&gt;<span style="">search_string</span>, $this-&gt;<span style="">config</span>-&gt;<span style="">admin_options</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC0000;">'sphinx_index'</span><span style="color:#006600; font-weight:bold;">&#93;</span> <span style="color:#006600; font-weight:bold;">&#41;</span>;<span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Первое, если один из аттрибутов не установлен, то с помощью SetFilter('isPost', array(0)) мы исключаем его из поиска.<br />
Второе, если пользователь захотел отсортировать результаты по дате добавления, то мы испольязем режим сортировки по атрибуту SetSortMode(SPH_SORT_ATTR_DESC, 'date_added'). По умолчанию данные сортируются по релевантности.<br />
И последнее мы выполняем собственно запрос с помощью метода Query(), первый параметр это запрос введенный пользователем, второй это индекс по которому выполнять поиск.</p>
<h3>Результат поиска</h3>
<p>Результат поиска мы должны обработать следующим образом:</p>
<ul>
<li>Получить найденный идентификационные номера и по ним получить данные</li>
<li>Используя атрибуты isPost, isPage и isComment мы узнаем из какой таблицы получать данные</li>
<li>Потом объединяем полученный результат</li>
<li>И последнее мы выделяем ключевые слова в результата, путем добавления html тэга STRONG вокруг слова.</li>
</ul>
<p>Выделение ключевых слов делает метод BuildExcerpts</p>
<div class="igBar"><span id="lcode-12"><a href="#" onclick="javascript:showPlainTxt('code-12'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-12">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$opts = array<span style="color:#006600; font-weight:bold;">&#40;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#CC0000;">'limit'</span>&nbsp; =&gt; $this-&gt;<span style="">config</span>-&gt;<span style="">admin_options</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC0000;">'excerpt_limit'</span><span style="color:#006600; font-weight:bold;">&#93;</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#CC0000;">'around'</span> =&gt; $this-&gt;<span style="">config</span>-&gt;<span style="">admin_options</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC0000;">'excerpt_around'</span><span style="color:#006600; font-weight:bold;">&#93;</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#CC0000;">'chunk_separator'</span> =&gt; $this-&gt;<span style="">config</span>-&gt;<span style="">admin_options</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC0000;">'excerpt_chunk_separator'</span><span style="color:#006600; font-weight:bold;">&#93;</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#CC0000;">'after_match'</span> =&gt; $this-&gt;<span style="">config</span>-&gt;<span style="">admin_options</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC0000;">'excerpt_after_match'</span>.$isTitle<span style="color:#006600; font-weight:bold;">&#93;</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#CC0000;">'before_match'</span> =&gt; $this-&gt;<span style="">config</span>-&gt;<span style="">admin_options</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC0000;">'excerpt_before_match'</span>.$isTitle<span style="color:#006600; font-weight:bold;">&#93;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$excerpts = $this-&gt;<span style="">config</span>-&gt;<span style="">sphinx</span>-&gt;<span style="">BuildExcerpts</span><span style="color:#006600; font-weight:bold;">&#40;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $post_content,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; <span style="color:#CC0000;">'main_'</span>.$this-&gt;<span style="">config</span>-&gt;<span style="">admin_options</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC0000;">'sphinx_index'</span><span style="color:#006600; font-weight:bold;">&#93;</span>, </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $this-&gt;<span style="">search_string</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; $opts</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>В параметрах этого метода надо указать строку результата в которой надо выделить слова, индекс, запрос и параметы выделения.  В результате мы получем строку с подсвеченными ключевыми словами, которые пристуствовали в запросе.</p>
<p>В итоге как мы видим, написать свой поиск используя Sphinx Search достаточно просто. Если у вас большой блог и вы также хотите получить быстрый и много-функциональный поиск, тогда скачивайте <a href="http://launchpad.net/wp-sphinx-plugin/1.0/1.0/+download/wp-sphinx-plugin-1.0.tar.gz" rel="nofollow">WPSphinx плагин</a> - это бесплатно. :)</p>
<hr />
<p><small>© Yaroslav Vorozhko  for <a href="http://pro100pro.com">Просто про веб технологии</a>, 2009. |
<a href="http://pro100pro.com/sphinx-search-plugin-poiska-dlya-wordpress-sphinx-dlya-nachinaushih">Permalink</a> |
<a href="http://pro100pro.com/sphinx-search-plugin-poiska-dlya-wordpress-sphinx-dlya-nachinaushih#comments">2 comments</a> |
Add to
<a href="http://del.icio.us/post?url=http://pro100pro.com/sphinx-search-plugin-poiska-dlya-wordpress-sphinx-dlya-nachinaushih&title=Sphinx Search плагин поиска для Wordpress &#8211; поиск с Sphinx Search для начинающих">del.icio.us</a>
<br/>
Post tags: <a href="http://pro100pro.com/tag/php" rel="tag">PHP</a>, <a href="http://pro100pro.com/tag/plugin" rel="tag">Plugin</a>, <a href="http://pro100pro.com/tag/sphinx-search" rel="tag">Sphinx Search</a>, <a href="http://pro100pro.com/tag/wordpress" rel="tag">wordpress</a>, <a href="http://pro100pro.com/tag/wpsphinx-plugin" rel="tag">WPSphinx plugin</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/pro100pro/~4/fxZdrSVDu2A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pro100pro.com/sphinx-search-plugin-poiska-dlya-wordpress-sphinx-dlya-nachinaushih/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		<feedburner:origLink>http://pro100pro.com/sphinx-search-plugin-poiska-dlya-wordpress-sphinx-dlya-nachinaushih</feedburner:origLink></item>
		<item>
		<title>Как вы используете Sphinx Search API?</title>
		<link>http://feedproxy.google.com/~r/pro100pro/~3/2WVPYdtyy_A/kak-vy-ispolzuete-sphinx-search-api</link>
		<comments>http://pro100pro.com/kak-vy-ispolzuete-sphinx-search-api#comments</comments>
		<pubDate>Mon, 21 Dec 2009 19:54:28 +0000</pubDate>
		<dc:creator>Yaroslav Vorozhko</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[LinkAider]]></category>
		<category><![CDATA[Projects]]></category>
		<category><![CDATA[Sphinx Search]]></category>
		<category><![CDATA[ZendFramework]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://pro100pro.com/?p=400</guid>
		<description><![CDATA[Sphinx Search API для PHP  пердставляет собой единый класс, который позволяет использовать все возможности Sphinx Search через его интерфейс. Но, такой класс является удобным только для небольших скриптов и задач. 
Для более сложных задач и больших веб приложений необходимо другое решение. И это решения является проектированием и реализацией собственной обертки для Sphinx Search API.]]></description>
			<content:encoded><![CDATA[<p>Sphinx Search API для PHP  пердставляет собой единый класс, который позволяет использовать все возможности Sphinx Search через его интерфейс. Но, такой класс является удобным только для небольших скриптов и задач.<br />
Для более сложных задач и больших веб приложений необходимо другое решение. И это решения является проектированием и реализацией собственной обертки для Sphinx Search API.</p>
<p>В нашем проекте LinkAider.com мы используем следующие понятия и классы при работе с Sphinx Search:</p>
<ol>
<li>Сфинкс клиент, отвечающий за подключение, выполнение запросов и обработку ошибок. Для разработчика сфинкс клиент невидим, мы только сообщаем ему параметры подключения к searchd.</li>
<li>Сфинкс индекс - это один из основных классов, с которым работает разработчик, этот класс отвечает за формирование запросов и выполнение запросов через Сфинкс клиент, а также за обработку результатов запроса.</li>
<li>Сфинкс запрос - это еще один класс к которому обращается разработчик для составления запросов. Каждый запрос отвечает за свои индекс к которому обращается, а также содержит свои фильтры, группировки, сортировки и собственно сам запрос.</li>
<li>Сфинкс результат - это класс, который разбирает ответ сфинкса и предоставляет удобный интерфейс к информации по каждому запросу, также он содержит информацию об ошибках, которую испльзуетя Сфинкс клиент для логирования. Сфинкс результат используется разработчиками для создания запросов к базе данных и получения искомых данных.</li>
</ol>
<p>Пример работы выглядит следующим образом:</p>
<ol>
<li>Мы создаем объект Сфинкс индекс, который инициализирует Сфинкс клиент, устанавливая для него параметры подключения.</li>
<li>Потом мы создаем объекты запросы для каждого указываем фильтры, группировки и т.п., и  указываем к какому индексу делать запрос. Запросов может быть один или несколько, несколько запросов обрабатываються паралельно, что улучшает общую производительность системы.</li>
<li>Каждый созданный запрос мы добавляем в Сфинкс индекс, при добавлении мы можем также указатьк какому индексу делать запрос.</li>
<li>Специальный метод Run класса Сфинкс индекс запускает все запросы и как результат возвращает нам объект Сфинкс результат.</li>
<li>Данные из Сфинкс результата мы используем чтоб создать запросы к базе данных и получить искомые данные.</li>
</ol>
<p>Преимущеста, которые мы получем от работы с такой библотекой - это простота. Разработчик используя объект Сфинкс запрос может выполнять любые запросы.<br />
Сфинкс результат предоставляет удобную обертку над массивом результата.<br />
Нет необходимости помнить множество констант SphinxClient и парсить массив результата. В общем это выглдит так, как будто вы работаете с обычной таблицой, но не до конца. :)</p>
<p>Недостатки в том, что нам все еще приходится вручную связывать результат с таблицами, что может привести к ошибкам и неэффективному коду.</p>
<p>Решение я вижу, в привязке каждого запроса к определенной таблице или группе таблиц.</p>
<p>По описнной выше логике я разрабатываю модуль Sphinx Search для Zend Framework, который я планирую выложить в откртый доступ очень скоро, возможно к новому году.</p>
<p>Поэтому хотелось бы узнать как вы используете Sphinx Search и какие преимущества и недостатки вывидите у вашего подхода.</p>
<p>Буду рад любым советам и рекомендациям.</p>
<hr />
<p><small>© Yaroslav Vorozhko  for <a href="http://pro100pro.com">Просто про веб технологии</a>, 2009. |
<a href="http://pro100pro.com/kak-vy-ispolzuete-sphinx-search-api">Permalink</a> |
<a href="http://pro100pro.com/kak-vy-ispolzuete-sphinx-search-api#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://pro100pro.com/kak-vy-ispolzuete-sphinx-search-api&title=Как вы используете Sphinx Search API?">del.icio.us</a>
<br/>
Post tags: <a href="http://pro100pro.com/tag/development" rel="tag">Development</a>, <a href="http://pro100pro.com/tag/linkaider" rel="tag">LinkAider</a>, <a href="http://pro100pro.com/tag/sphinx-search" rel="tag">Sphinx Search</a>, <a href="http://pro100pro.com/tag/zend-framework" rel="tag">Zend Framework</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/pro100pro/~4/2WVPYdtyy_A" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pro100pro.com/kak-vy-ispolzuete-sphinx-search-api/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pro100pro.com/kak-vy-ispolzuete-sphinx-search-api</feedburner:origLink></item>
		<item>
		<title>Простой загрузчик файлов для Zend Framework</title>
		<link>http://feedproxy.google.com/~r/pro100pro/~3/Nz4s7mUmk7I/prostoy-loader-failov-zendframework</link>
		<comments>http://pro100pro.com/prostoy-loader-failov-zendframework#comments</comments>
		<pubDate>Thu, 17 Dec 2009 13:26:05 +0000</pubDate>
		<dc:creator>Yaroslav Vorozhko</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Tips And Tricks]]></category>
		<category><![CDATA[ZendFramework]]></category>
		<category><![CDATA[Code snippet]]></category>
		<category><![CDATA[File Loader]]></category>
		<category><![CDATA[zend]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://pro100pro.com/?p=392</guid>
		<description><![CDATA[Сегодня увидел хороший code snippet простого лоадера файлов в проект на Zend Framework.
PLAIN TEXT
CODE:




class App_Application_Resource_Fileloader extends Zend_Application_Resource_ResourceAbstract &#123;


&#160; /**


&#160; &#160;* @return null


&#160; &#160;*/


&#160;


public function init&#40;&#41; &#123;


&#160; &#160; &#160; &#160; $options = $this-&#62;getOptions &#40;&#41;;


&#160; &#160; &#160; &#160; foreach &#40;$options as $filePath&#41;


&#160; &#160; &#160; &#160; &#160; &#160; include $filePath;


return null;


&#160; &#160; &#160; &#160; 


&#160; &#160; &#125;


&#160; &#160; [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня увидел хороший code snippet простого лоадера файлов в проект на Zend Framework.</p>
<div class="igBar"><span id="lcode-14"><a href="#" onclick="javascript:showPlainTxt('code-14'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-14">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">class App_Application_Resource_Fileloader extends Zend_Application_Resource_ResourceAbstract <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#008000;">/**</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">&nbsp; &nbsp;* @return null</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#008000;">&nbsp; &nbsp;*/</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">public function init<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $options = $this-&gt;<span style="">getOptions</span> <span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; foreach <span style="color:#006600; font-weight:bold;">&#40;</span>$options as $filePath<span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; include $filePath;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">return null;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; </div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#125;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">resources.<span style="">fileLoader</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#93;</span> = LIBRARY_PATH <span style="color:#CC0000;">"/App/Regex_Functions.php"</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">resources.<span style="">fileLoader</span><span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#006600; font-weight:bold;">&#93;</span> = LIBRARY_PATH <span style="color:#CC0000;">"/App/Api_Functions.php"</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<hr />
<p><small>© Yaroslav Vorozhko  for <a href="http://pro100pro.com">Просто про веб технологии</a>, 2009. |
<a href="http://pro100pro.com/prostoy-loader-failov-zendframework">Permalink</a> |
<a href="http://pro100pro.com/prostoy-loader-failov-zendframework#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://pro100pro.com/prostoy-loader-failov-zendframework&title=Простой загрузчик файлов для Zend Framework">del.icio.us</a>
<br/>
Post tags: <a href="http://pro100pro.com/tag/code-snippet" rel="tag">Code snippet</a>, <a href="http://pro100pro.com/tag/file-loader" rel="tag">File Loader</a>, <a href="http://pro100pro.com/tag/zend" rel="tag">zend</a>, <a href="http://pro100pro.com/tag/zend-framework" rel="tag">Zend Framework</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/pro100pro/~4/Nz4s7mUmk7I" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pro100pro.com/prostoy-loader-failov-zendframework/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pro100pro.com/prostoy-loader-failov-zendframework</feedburner:origLink></item>
		<item>
		<title>Autoload своих библотек в Zend Framework 1.8+</title>
		<link>http://feedproxy.google.com/~r/pro100pro/~3/QN39MXVbPD4/autoload-svoix-biblotek-v-zend-framework-1-8</link>
		<comments>http://pro100pro.com/autoload-svoix-biblotek-v-zend-framework-1-8#comments</comments>
		<pubDate>Fri, 11 Dec 2009 16:49:09 +0000</pubDate>
		<dc:creator>Yaroslav Vorozhko</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Tips And Tricks]]></category>
		<category><![CDATA[ZendFramework]]></category>
		<category><![CDATA[Loader]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://pro100pro.com/?p=389</guid>
		<description><![CDATA[Чтоб загружать в Zend Framework свои библиотеки, нам надо сделать следующее:
Первое - это добавить физический путь к библиотеке в include_path.
Второе - это указать префикс классов библиотеки, если такой вообще используется.
Добавить путь в include_path можно двумя способами:
1. Жетско прописать путь в public/index.php файле:
PLAIN TEXT
CODE:




set_include_path&#40;implode&#40;PATH_SEPARATOR, array&#40;


&#160; &#160; realpath&#40;APPLICATION_PATH . '/../library'&#41;,


&#160; &#160; realpath&#40;APPLICATION_PATH . '/../mylib'&#41;,


&#160; &#160; get_include_path&#40;&#41;,


&#41;&#41;&#41;; 






2. [...]]]></description>
			<content:encoded><![CDATA[<p>Чтоб загружать в Zend Framework свои библиотеки, нам надо сделать следующее:<br />
Первое - это добавить физический путь к библиотеке в include_path.<br />
Второе - это указать префикс классов библиотеки, если такой вообще используется.</p>
<p>Добавить путь в include_path можно двумя способами:<br />
1. Жетско прописать путь в public/index.php файле:</p>
<div class="igBar"><span id="lcode-19"><a href="#" onclick="javascript:showPlainTxt('code-19'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-19">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">set_include_path<span style="color:#006600; font-weight:bold;">&#40;</span>implode<span style="color:#006600; font-weight:bold;">&#40;</span>PATH_SEPARATOR, array<span style="color:#006600; font-weight:bold;">&#40;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; realpath<span style="color:#006600; font-weight:bold;">&#40;</span>APPLICATION_PATH . <span style="color:#CC0000;">'/../library'</span><span style="color:#006600; font-weight:bold;">&#41;</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; realpath<span style="color:#006600; font-weight:bold;">&#40;</span>APPLICATION_PATH . <span style="color:#CC0000;">'/../mylib'</span><span style="color:#006600; font-weight:bold;">&#41;</span>,</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; get_include_path<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>,</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;"><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
2. Прописать путь в конфигруационном файле application/configs/application.ini</p>
<div class="igBar"><span id="lcode-20"><a href="#" onclick="javascript:showPlainTxt('code-20'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-20">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">includePaths.<span style="">mylib</span> = APPLICATION_PATH <span style="color:#CC0000;">"/../mylib"</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
В обоих случаях мы добавляем путь к mylib в include_path. Второй способ более предпочтительный, так как на основе выбранной конфигурации (production, develeopment, test) можно устанавливать путь к различным версиям mylib.<br />
Кстати используя этот же прием, можно устанавливать путь и к каталогу library/Zend и на основе конфигураций подгружать различный версии Zend Framework.</p>
<p>И так, второе что нам необходимо сделать - это подключить автозагрузчик и установить префикс используемый классами библиотеки.<br />
Я прописал автозагрузчик в файле public/index.php</p>
<div class="igBar"><span id="lcode-21"><a href="#" onclick="javascript:showPlainTxt('code-21'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-21">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">require_once <span style="color:#CC0000;">'Zend/Loader/Autoloader.php'</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$loader = Zend_Loader_Autoloader::<span style="">getInstance</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$loader-&gt;<span style="">registerNamespace</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'My_'</span><span style="color:#006600; font-weight:bold;">&#41;</span>; </div>
</li>
</ol>
</div>
</div>
</div>
<p>
В данном случае префикс классов в моей библиотеки "My_".</p>
<p>Также, этот же код можно прописать и в классе Bootstrap.php</p>
<div class="igBar"><span id="lcode-22"><a href="#" onclick="javascript:showPlainTxt('code-22'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-22">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">protected function _initAutoload<span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; require_once <span style="color:#CC0000;">'Zend/Loader/Autoloader.php'</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $loader = Zend_Loader_Autoloader::<span style="">getInstance</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; &nbsp; $loader-&gt;<span style="">registerNamespace</span><span style="color:#006600; font-weight:bold;">&#40;</span><span style="color:#CC0000;">'My'</span><span style="color:#006600; font-weight:bold;">&#41;</span>;</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p></p>
<p>Все, теперь ZF знает как загружать классы из вашей бибилиотеки.</p>
<hr />
<p><small>© Yaroslav Vorozhko  for <a href="http://pro100pro.com">Просто про веб технологии</a>, 2009. |
<a href="http://pro100pro.com/autoload-svoix-biblotek-v-zend-framework-1-8">Permalink</a> |
<a href="http://pro100pro.com/autoload-svoix-biblotek-v-zend-framework-1-8#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://pro100pro.com/autoload-svoix-biblotek-v-zend-framework-1-8&title=Autoload своих библотек в Zend Framework 1.8+">del.icio.us</a>
<br/>
Post tags: <a href="http://pro100pro.com/tag/loader" rel="tag">Loader</a>, <a href="http://pro100pro.com/tag/php" rel="tag">PHP</a>, <a href="http://pro100pro.com/tag/zend-framework" rel="tag">Zend Framework</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/pro100pro/~4/QN39MXVbPD4" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pro100pro.com/autoload-svoix-biblotek-v-zend-framework-1-8/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pro100pro.com/autoload-svoix-biblotek-v-zend-framework-1-8</feedburner:origLink></item>
		<item>
		<title>Zend Studio: Workspace in use choose different workspace</title>
		<link>http://feedproxy.google.com/~r/pro100pro/~3/uN-m91UjUm8/zend-studio-workspace-in-use-choose-different-workspace</link>
		<comments>http://pro100pro.com/zend-studio-workspace-in-use-choose-different-workspace#comments</comments>
		<pubDate>Mon, 07 Dec 2009 10:25:43 +0000</pubDate>
		<dc:creator>Yaroslav Vorozhko</dc:creator>
				<category><![CDATA[Clients Configuration]]></category>
		<category><![CDATA[Tips And Tricks]]></category>
		<category><![CDATA[Zend Studio]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[Workspace]]></category>

		<guid isPermaLink="false">http://pro100pro.com/?p=387</guid>
		<description><![CDATA[Вот такую ошибку я увидел недавно, после того как экстренно завершила работу Zend студия.
Причем заставить выбрать рабочее простраство по умолчанию не представляется возможным.
Вот как решается это под Linux (Ubuntu):
rm -rf /tmp/eclipse
С данной проблемой под Windows не сталкивался, поэтому точного решения не подскажу.
Но, как ориентир, я порекомендовал бы почистить "tmp" каталог в Application Data. 

© Yaroslav [...]]]></description>
			<content:encoded><![CDATA[<p>Вот такую ошибку я увидел недавно, после того как экстренно завершила работу Zend студия.<br />
Причем заставить выбрать рабочее простраство по умолчанию не представляется возможным.<br />
Вот как решается это под Linux (Ubuntu):<br />
<code>rm -rf /tmp/eclipse</code><br />
С данной проблемой под Windows не сталкивался, поэтому точного решения не подскажу.<br />
Но, как ориентир, я порекомендовал бы почистить "tmp" каталог в Application Data. </p>
<hr />
<p><small>© Yaroslav Vorozhko  for <a href="http://pro100pro.com">Просто про веб технологии</a>, 2009. |
<a href="http://pro100pro.com/zend-studio-workspace-in-use-choose-different-workspace">Permalink</a> |
<a href="http://pro100pro.com/zend-studio-workspace-in-use-choose-different-workspace#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://pro100pro.com/zend-studio-workspace-in-use-choose-different-workspace&title=Zend Studio: Workspace in use choose different workspace">del.icio.us</a>
<br/>
Post tags: <a href="http://pro100pro.com/tag/bug" rel="tag">bug</a>, <a href="http://pro100pro.com/tag/workspace" rel="tag">Workspace</a>, <a href="http://pro100pro.com/tag/zend-studio" rel="tag">Zend Studio</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/pro100pro/~4/uN-m91UjUm8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pro100pro.com/zend-studio-workspace-in-use-choose-different-workspace/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pro100pro.com/zend-studio-workspace-in-use-choose-different-workspace</feedburner:origLink></item>
		<item>
		<title>Lighttpd создаем виртуальные хосты автоматически</title>
		<link>http://feedproxy.google.com/~r/pro100pro/~3/vYmII8VITnE/lighttpd-sozdaem-virtualnye-xosty-avtomaticheski</link>
		<comments>http://pro100pro.com/lighttpd-sozdaem-virtualnye-xosty-avtomaticheski#comments</comments>
		<pubDate>Sun, 06 Dec 2009 14:05:48 +0000</pubDate>
		<dc:creator>Yaroslav Vorozhko</dc:creator>
				<category><![CDATA[Lighttpd]]></category>
		<category><![CDATA[Server Configuration]]></category>
		<category><![CDATA[subdomain]]></category>
		<category><![CDATA[virtual hosts]]></category>

		<guid isPermaLink="false">http://pro100pro.com/?p=383</guid>
		<description><![CDATA[Для создания автоматических вартуальных хостов нам потребуется модуль evhost. Этот модуль идет в стандартной поставке Lighttpd.
В секции modules расскомментируйте соответсвующую строку или добавте новую, если модуля нет в списке.
Первое, что нам надо знать - это то как lighttpd читает и парсит URI с помощью этого модуля.
PLAIN TEXT
CODE:




%% =&#62; % sign


&#160; %0 =&#62; domain name + [...]]]></description>
			<content:encoded><![CDATA[<p>Для создания автоматических вартуальных хостов нам потребуется модуль evhost. Этот модуль идет в стандартной поставке Lighttpd.<br />
В секции modules расскомментируйте соответсвующую строку или добавте новую, если модуля нет в списке.<br />
Первое, что нам надо знать - это то как lighttpd читает и парсит URI с помощью этого модуля.</p>
<div class="igBar"><span id="lcode-25"><a href="#" onclick="javascript:showPlainTxt('code-25'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-25">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">%% =&gt; % sign</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; %<span style="color:#800000;color:#800000;">0</span> =&gt; domain name + tld</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; %<span style="color:#800000;color:#800000;">1</span> =&gt; tld</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; %<span style="color:#800000;color:#800000;">2</span> =&gt; domain name without tld</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; %<span style="color:#800000;color:#800000;">3</span> =&gt; subdomain <span style="color:#800000;color:#800000;">1</span> name</div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; %<span style="color:#800000;color:#800000;">4</span> =&gt; subdomain <span style="color:#800000;color:#800000;">2</span> name</div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; %_ =&gt; full domain name </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Нас интересуют сабдомены первого уровня, которые хранятся в переменной %3.<br />
Создадим для них специальный конфиг:</p>
<div class="igBar"><span id="lcode-26"><a href="#" onclick="javascript:showPlainTxt('code-26'); return false;">PLAIN TEXT</a></span></div>
<div class="syntax_hilite"><span class="langName">CODE:</span>
<div id="code-26">
<div class="code">
<ol>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">$HTTP<span style="color:#006600; font-weight:bold;">&#91;</span><span style="color:#CC0000;">"host"</span><span style="color:#006600; font-weight:bold;">&#93;</span> =~ <span style="color:#CC0000;">".*<span style="color:#000099; font-weight:bold;">\.</span>example<span style="color:#000099; font-weight:bold;">\.</span>org"</span> <span style="color:#006600; font-weight:bold;">&#123;</span></div>
</li>
<li style="font-weight: bold;color:#26536A;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; &nbsp; &nbsp; evhost.<span style="">path</span>-pattern = <span style="color:#CC0000;">"/home/%3/public_html/"</span> </div>
</li>
<li style="font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;color:#3A6A8B;">
<div style="font-family: 'Courier New', Courier, monospace; font-weight: normal;">&nbsp; <span style="color:#006600; font-weight:bold;">&#125;</span> </div>
</li>
</ol>
</div>
</div>
</div>
<p>
Этим конфигом мы будем перехватытвать все запросы обращенные к example.org и всем его сабдоменам.<br />
Директива evhost.path-pattern устанавливает document root для каждого сабдомена.<br />
<em>Note: не указывайте server.document-root как путь по умолчанию к вашим сабдоменам. Это может быть опасно.</em></p>
<p>Теперь каждый каталог в /home будет считатся сабдоменом для example.org.<br />
Незабудте также прописать каждый сабдомен в DNS или /etc/hosts.<br />
Перезапускаем Lighttpd и проверяем.<br />
Спасибо!</p>
<hr />
<p><small>© Yaroslav Vorozhko  for <a href="http://pro100pro.com">Просто про веб технологии</a>, 2009. |
<a href="http://pro100pro.com/lighttpd-sozdaem-virtualnye-xosty-avtomaticheski">Permalink</a> |
<a href="http://pro100pro.com/lighttpd-sozdaem-virtualnye-xosty-avtomaticheski#comments">No comment</a> |
Add to
<a href="http://del.icio.us/post?url=http://pro100pro.com/lighttpd-sozdaem-virtualnye-xosty-avtomaticheski&title=Lighttpd создаем виртуальные хосты автоматически">del.icio.us</a>
<br/>
Post tags: <a href="http://pro100pro.com/tag/lighttpd" rel="tag">Lighttpd</a>, <a href="http://pro100pro.com/tag/server-configuration" rel="tag">Server Configuration</a>, <a href="http://pro100pro.com/tag/subdomain" rel="tag">subdomain</a>, <a href="http://pro100pro.com/tag/virtual-hosts" rel="tag">virtual hosts</a><br/>
</small></p><img src="http://feeds.feedburner.com/~r/pro100pro/~4/vYmII8VITnE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pro100pro.com/lighttpd-sozdaem-virtualnye-xosty-avtomaticheski/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<feedburner:origLink>http://pro100pro.com/lighttpd-sozdaem-virtualnye-xosty-avtomaticheski</feedburner:origLink></item>
	</channel>
</rss>
