|
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера Хабрахабр: PHP / Блог / Захабренные/Записи в блоге |
|
Хабрахабр: PHP / Блог / Захабренные
Голосов: 1 Адрес блога: http://habrahabr.ru/blog/php/ Добавлен: 2008-06-12 19:52:35 блограйдером ZaiSL |
|
[Перевод] Опциональные зависимости не нужны
2014-04-18 15:00:21 (читать в оригинале)В данном посте речь пойдет о пакетах PHP и о
Что такое зависимость?
Для начала разберемся с тем, что такое зависимость и о чем вообще речь. Есть следующий код:
namespace Gaufrette\Adapter;
use Gaufrette\Adapter;
use \MongoGridFS;
class GridFS implements Adapter
{
private $gridFS;
public function __construct(MongoGridFS $gridFS)
{
$this->gridFS = $gridFS;
}
public function read($key)
{
$file = $this->find($key);
return ($file) ? $file->getBytes() : false;
}
}
Класс GridFS — часть библиотеки абстрактной файловой системы Gaufrette, которую я в какой-то степени изменил. Для определения всех зависимостей этого кусочка кода мы должны задать себе следующие вопросы:
- Что нужно, чтобы данный код заработал?
Читать дальше →
PHP-расширение dom_varimport: быстрое преобразования вложенных массивов в DOMDocument
2014-04-18 14:48:12 (читать в оригинале)
Некоторые проекты используют XSLT в качестве основного «движка» шаблонов. Помимо известных недостатков XSLT (например, его многословности, относительной медлительности и т.д.) у него есть и преимущества: «стандартность» языка, его идеология отсутствия «побочных эффектов» и pattern matching, возможность при необходимости вызывать методы helper-классов из шаблонов (через exslt-расширение). Какое-то время назад я выкладывал библиотеку ShortXSLT, позволяющую вместо громоздких <xsl:value-of select="/root/abc"/> и <xsl:choose>...</xsl:choose> писать просто {/root/abc} и {if...}...{elseif}...{/if} без потери производительности, так что проблема многословности отчасти решается.Но сейчас речь не о преимуществах и недостатках XSLT (я уверен, и противники, и сторонники этой технологии найдутся в изобилии). Я бы хотел описать один прием, который удобно применять в существующих проектах с XSLT-шаблонами, и привести ссылку на библиотеку, реализующую данный прием с хорошей производительностью.
Передаем данные в XSLT, минуя генерацию текстового представления XML
Представьте, что у нас есть контроллер, генерирующий некоторый вложенный PHP-список объектов для отображения на странице. Он должен этот массив преобразовать в XML, который потом пойдет на вход XSLT-шаблону. Хорошо бы, чтобы данное преобразование из структур PHP в XML выполнялось не вручную в каждом контроллере, а был некоторый промежуточный слой абстракции, который умеет применять XSLT-шаблон прямо к PHP-данным, минуя текстовое XML-представление. Так мы уменьшим вероятность ошибок, да и письмо сократится. Мы сможем работать с XSLT-шаблонами напрямую, минуя XML-представление данных.
Некоторое время назад я написал на Си PHP-расширение dom_varimport (также выложено на GitHub). Оно содержит одноименную функцию, на вход которой подается объект DOMDocument и PHP-массив любой вложенности. Функция заполняет переданный ей DOMDocument XML-представлением входного массива, и делает она это очень быстро — примерно в 20 раз быстрее, чем делал бы код, написанный на чистом PHP. Большой документ размером около 1 МБ с тысячами вложенных свойств и объектов формируется примерно за 1-2 миллисекунды.
Например, вызов: Читать дальше →
[Из песочницы] Удобный просмотр syslog журнала межсетевого экрана D-Link DFL-860E c помощью скрипта на PHP
2014-04-18 10:47:28 (читать в оригинале)В межсетевых экранах D-Link DFL есть несколько минусов в средстве просмотра журнала событий с помощью веб-интерфейса:
— большой поток данных переполняет отображаемый журнал событий и просмотреть логи обычно возможно только за маленький промежуток времени (несколько дней, чаще только за 1 день);
— чтобы посмотреть журнал нужно зайти в веб-панель маршрутизатора (ввести пароль и логин), выбрать статус и отображение журнала. Не имея доступа к веб-панели (не являясь админом устройства) посмотреть логи невозможно, а бывает нужно дать доступ на просмотр логов человеку, которому пароль и логин к устройству давать не нужно;
— в журнале логи разбиваются на маленькие странички, и если журнал большой перелистывать такие странички становится утомительно.
В DFL можно отправлять логи на syslog сервер, который будет писать журнал в файл, правда читать потом такой файл очень неудобно из-за его большого размера и неудобного поиска.
Для тех у кого есть возможность использовать web сервер, выполняющий скрипты на php можно просматривать журнал с помощью небольшого скрипта:
Читать дальше →
[Перевод] Релиз Wordpress 3.9 “Smith”
2014-04-17 16:35:41 (читать в оригинале)Ура, друзья, вышла новая версия WordPress — 3.9, и названа она в честь джазового музыканта Jimmy Smith.
Видео-обзор релиза:
Читать дальше →
[Из песочницы] Начинаем работать с графовой базой данных Neo4j
2014-04-16 14:51:25 (читать в оригинале)В нашем проекте возникла следующая задача — есть база с большим количеством товаров, на уровне сотен тысяч. У каждого товара есть сотни динамически создаваемых характеристик. Необходимо обеспечить быструю фильтрацию по товарам по набору различных характеристик. Время формирования ответа должно быть не более 0.3 секунды, нужно поддерживать сложную логику в стиле.
(характеристика1 = true AND (характеристика2 < 100)) OR (характеристика1 = false AND (характеристика3 > 17)) ... далее обычно мешанина из AND\ORТипичный пример подобного функционала — hotline.ua/computer/myshi-klaviatury/

У нас все реализовано в рамках MySQL + Symfony2/Doctrine, скорость неудовлетворительная — ответы формируются в течении 1-10 секунд. Мои попытки оптимизировать все это хозяйство — под катом.
Читать дальше →
Категория «Образование»
Взлеты Топ 5
|
| ||
|
+493 |
506 |
В интересном положении |
|
+450 |
511 |
Документальное кино |
|
+439 |
471 |
ГОРОСКОП |
|
+406 |
514 |
Документальные фильмы |
|
+377 |
445 |
Темы_дня |
Падения Топ 5
|
| ||
|
-1 |
13 |
Волонтеры. Красный крест |
|
-1 |
30 |
Skytao |
|
-3 |
8 |
Улицы Праги |
|
-7 |
5 |
Планирование проекта |
|
-8 |
6 |
Адреналин продаж |
Популярные за сутки
Загрузка...
BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.
