Сегодня 16 сентября, вторник ГлавнаяНовостиО проектеЛичный кабинетПомощьКонтакты Сделать стартовойКарта сайтаНаписать администрации
Поиск по сайту
 
Ваше мнение
Какой рейтинг вас больше интересует?
 
 
 
 
 
Проголосовало: 7281
Кнопка
BlogRider.ru - Каталог блогов Рунета
получить код
Хабрахабр: 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.

Цель данной статьи – рассказать о проделанных шагах, принятых решениях и описать полученный результат.

image

Читать дальше →

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 самого бандла, но что если нам необходимо, что бы меню было управляемо из админки? Заинтересовались? Тогда прошу под кат.
Читать дальше →


Страницы: ... 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 ... 

 


Самый-самый блог
Блогер ЖЖ все стерпит
ЖЖ все стерпит
по количеству голосов (152) в категории «Истории»
Изменения рейтинга
Категория «Спорт»
Взлеты Топ 5
+310
316
Мой журнальчик
+301
320
sib's Blog
+276
289
Media_Sapiens
+275
293
McMurphy
+273
278
sich
Падения Топ 5


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