![]() ![]() ![]()
Какой рейтинг вас больше интересует?
|
Главная /
Каталог блоговCтраница блогера Хабрахабр: PHP / Блог / Захабренные/Записи в блоге |
![]() |
Хабрахабр: PHP / Блог / Захабренные
Голосов: 1 Адрес блога: http://habrahabr.ru/blog/php/ Добавлен: 2008-06-12 19:52:35 блограйдером ZaiSL |
[Из песочницы] Диспетчер событий с фильтрацией по шаблону
2013-11-15 13:34:50 (читать в оригинале)Недавно у меня появилась необходимость в простом и функциональном диспетчере событий. После непродолжительных поисков на Packagist-е я нашел пакет Evenement, который почти полностью подходил под мои требования. Но все же отбор он не прошел из-за двух параметров:
- была нужна возможность порождать события по шаблону;
- интерфейс библиотеки визуально не понравился.
Конечно же, я принял решение доделать и причесать библиотеку «под себя».
Порождение событий по шаблону
Мне нужна была возможность с помощью шаблона порождать нужные события, имена которых представляют собой иерархические ключи (
foo.bar.baz
).Например, для такого списка событий:
some.event
another.event
yet.another.event
something.new
Нужно породить все события, заканчивающиеся на «event». Или начинающиеся на «yet» и заканчивающиеся на «event», и не важно, что в середине.
Читать дальше →
Continuous Delivery hecho en Alawar
2013-11-15 12:18:38 (читать в оригинале)Около года назад перед нашей командой была поставлена задача стартовать разработку серверных частей ряда игровых MMO проектов. Специфика такого рода проектов помимо требований к гибкости, стабильности и масштабируемости также включает в себя:
- необходимость A/B-тестирования разных версий одной и той же игры
- возможность по максимуму переиспользовать функциональность от одной игры в другой
- высокую вероятность географической удаленности от разработчиков занимающихся клиентской частью игры
Более того, в дальнейшем нашу команду предполагалось расширить, возможно за счет аутсорс разработчиков, в том числе и для задач поддержки. В этих условиях для успешной реализации было решено наравне с версионированием проектов, пакетированием и стандартизацией ряда шагов разработки внедрить и практику continuous delivery.
Цель данной статьи – рассказать о проделанных шагах, принятых решениях и описать полученный результат.

Читать дальше →
Тэги: <
Постоянная ссылка
SonataMediaBundle. Русская версия перевода файла xliff
2013-11-14 14:17:38 (читать в оригинале)Доброго времени суток хабровчане. Во время работы над админ частью одного русскоязычного ресурса, появилась необходимость, что бы вся админка была на русском языке. В самой SonataAdminBundle файлик такой есть, и это не вызвывает сложностей. Но как оказалось, подключенная к AdminBundle другой Сонатовский бандл, а именно SonataMediaBundle не обладает таким интерфейсом. Собственно появилось необходимость перевести его, так как не нашел в сети. Что из этого получилось? Прошу под кат.
Читать дальше →
[Перевод] Новое в Symfony 2.4: компонент ExpressionLanguage
2013-11-13 23:34:20 (читать в оригинале)В Symfony 2.4 появится новый компонент — ExpressionLanguage. Компонент является движком для компиляции и исполнения «выражений».
Этот язык является урезанной версией твига. Выражения укладываются в одну строку и обычно возвращают булево значения, но не ограничиваются этим.
В отличии от твига, ExpressionLanguage работает в двух режимах:
- Компиляция: выражение компилируется в PHP код для последующего исполнения (код не зависит от среды выполнения)
- Исполнение: выражение исполняется без предварительной компиляции
Чтобы было возможно компилировать выражения в PHP код, не нуждающийся в модификации во время выполнения, оператор
.
должен быть явным и означать лишь одно возможное поведение: foo.bar
— для свойств объекта, foo['bar']
для доступа к массиву, foo.getBar()
для вызова методов.Использование компонента просто на сколько это возможно:
use Symfony\Component\ExpressionLanguage\ExpressionLanguage;
$language = new ExpressionLanguage();
echo $language->evaluate('1 + 1');
// echo 2
echo $language->compile('1 + 2');
// echo "(1 + 2)"
Язык выражений поддерживает все то же что и твиг: математические операторы, строки, числа, массивы, хеши, булевы переменные… Выражения могут рассматриваться как очень ограниченная PHP-песочница, в которой невозможны внешние воздействия, все переменные должны быть объявлены заранее до компиляции или исполнения выражения.
$language->evaluate('a.b', array('a' => new stdClass()));
$language->compile('a.b', array('a'));
Последнее, но не по значению — вы можете легко расширить язык с помощью функций. Они работают точно также как их аналоги в твиге (для подробного ознакомления посмотрите метод
register()
)Как на счет примеров использования? Мы встроили компонент во множество других компонентов, используемых в Symfony.
Примеры под катом
KnpMenuBundle + Sonata. Делаем меню из базы
2013-11-13 23:19:51 (читать в оригинале)Всем приятного времени суток уважаемые хабровчане. Я люблю Symfony. Она мне нравится и я ее обожаю. Еще мне нравится SonataAdminBundle. Думаю многим из вас тоже. Итак, в данной статье я хочу рассмотреть процесс создания меню для сайта при участие в этом процессе KNPMenuBundle + SonataAdminBundle. По сути процесс создания меню достаточно прост и подробно описан на github’e самого бандла, но что если нам необходимо, что бы меню было управляемо из админки? Заинтересовались? Тогда прошу под кат.
Читать дальше →



Категория «Спорт»
Взлеты Топ 5
![]() | ||
+310 |
316 |
Мой журнальчик |
+301 |
320 |
sib's Blog |
+276 |
289 |
Media_Sapiens |
+275 |
293 |
McMurphy |
+273 |
278 |
sich |
Падения Топ 5
![]() | ||
-2 |
2 |
Ужосный_Типп |
-2 |
6 |
спорт Волгоград |
-3 |
5 |
master |
-5 |
3 |
Футбол в России и за рубежом |
-7 |
188 |
Новости ForDiving.ru |

Популярные за сутки
Загрузка...

BlogRider.ru не имеет отношения к публикуемым в записях блогов материалам. Все записи
взяты из открытых общедоступных источников и являются собственностью их авторов.
взяты из открытых общедоступных источников и являются собственностью их авторов.