Рубрика «php» - 119

PHP-Дайджест № 79 – интересные новости, материалы и инструменты (1 – 14 февраля 2016) - 1

Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать полностью »

В последнее время задался вопросом написания php класса для работы с базой данных mysql. Мои требования – удобство формирования запроса к базе данных и возможность сортировки и записи данных через массив, что упрощает работу с БД.

В результате появился вот такой класс:
Читать полностью »

Мы привыкли почему-то разделять REST и RPC, мне кажется это разделение искусственным. Просто REST строже и ограничен в методах, и это не всегда оправдано в сложном приложении.

Сделаем простую основу для написания сервисно-ориентированной архитектуры. Как стек технологий используем славный Yii2, быстрый Nginx и молниеносный Redis. Почему именно так, станет ясно позднее.

Для управления сущностями на примитивном уровне СREATE, UPDATE, DELETE, GET нам вполне достаточно Rest техники которая заложена в Yii2.

Для облегчения работы в сцепке Nginx + Redis, нам придется использовать немного нестандартный подход, то есть полностью передать как параметры: класс, метод и другие нужные параметры. Для валидации этой компании используем наипростейшую форму Yii2 Model (для экономии места проигнорируем code style):
Читать полностью »

в 7:48, , рубрики: linux, php

Доброго времени суток, сегодня я буду описывать довольно забавную задачку, из области мало связанной напрямую с web-программированием, а точнее создание демона на PHP. Понятное дело что первым вопросом будет: «А зачем это надо?» Ну что ж, будем разбираться последовательно.

Читать полностью »

image
На картинке — Ancient Psychic Tandem War Elephant © Adventure Time

В этой статье будет рассмотрен процесс внедрения в PHP нового оператора. Для этого будут выполнены следующие шаги:

  • Обновление лексического анализатора: он будет знать о синтаксисе нового оператора, что позволит потом превратить его в токен.
  • Обновление парсера: система будет знать, где может использоваться этот оператор, а заодно какова его приоритетность и ассоциативность.
  • Обновление этапа компиляции: здесь происходит обработка (traverse) дерева абстрактного синтаксиса (AST) и извлечение из него кодов операции.
  • Обновление виртуальной машины Zend: во время выполнения скрипта она используется для обработки интерпретации нового кода операции для оператора.

В общем, в этой статье будут кратко рассмотрены несколько внутренних моментов PHP. Выражаю горячую благодарность Никите Попову за помощь в доработке этой статьи.
Читать полностью »

Ежегодная конференция профессиональных веб-разработчиков DevConf проходит с 2010 года. Она состоит из нескольких секций, посвященных самым популярным языкам и технологиям веб-разработки. В 2015 году году компания Badoo взяла на себя важную миссию — записать видео выступлений, чтобы те, кто не смог посетить конференцию, могли посмотреть их в любое время.

Первым делом мы решили выложить видео с самой интересной для нас секции, посвященной нашему любимому языку PHP. Некоторые темы нам настолько близки, что мы постарались рассказать не только о содержании доклада, но и о том, что мы в Badoo делаем и думаем на этот счет. Надеемся, этот формат покажется интересным читателям и даст более широкое представление о теме.

Секция PHP конференции DevConf 2015

В первую очередь хотелось бы отметить доклад Дмитрия Стогова (Zend Technologies) «Релиз PHP 7: что нас ждет в октябре 2015». Не будем мучить вас переводом «чейнджлога» седьмой версии, а скажем просто: смотреть всем, кто имеет хоть какое-то отношение к PHP. Если вы за свою жизнь написали хотя бы строчку кода на PHP, то, скорее всего, уже слышали про сумасшедшую производительность, JIT и spaceship operator. JIT в PHP так и не появился, но оптимизации проведены масштабные. В докладе Дмитрий рассказывает много о внутренней кухне PHP, есть графики производительности разных версий PHP и HHVM на реальных приложениях. Badoo сейчас как раз в процессе перехода на PHP 7, нам пришлось сильно «перекопать» инфраструктуру тестирования и переписать кучу расширений, но мы на финишной прямой и можем подтвердить, что PHP 7 действительно показывает очень серьезный рост производительности. Какой именно получается прирост? Пока секрет. Ждите от нас отдельной статьи на эту тему, когда мы поборем последние косяки, отлавливаемые на продакшн-трафике.


Читать полностью »

PHP-Дайджест № 78 – интересные новости, материалы и инструменты (18 – 31 января 2016) - 1

Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.

Приятного чтения!
Читать полностью »

Сразу после Нового года хотелось бы поставить себе какие-нибудь хорошие добротные цели. Пишу это в надежде на какие-то новые свежие идеи, которые коллеги могут подсказать. Уверен, что я не первый и не последний с подобной кашей в голове.

Вот вроде уже профессионал в своем деле. 12+ лет программирования в PHP, знаю все плюшки и важные вещи: паттерны, методики, best practices, узкие места, частые ошибки и пр. И тим-лид я уже лет 5 где-то. И команда крепкая. И проекты все время интересные широкие. И начальство понимающее положительное.

Есть еще куча всего, что можно изучить, это несомненно. «Я знаю, что ничего не знаю» (Сократ) — и с этим я полностью согласен. Более того, постоянно учусь: вебинары, семинары, книги, примеры решения задач… Но есть какой-то голод внутри. Знакомо, не правда ли? Читать полностью »

image

На сегодняшний день разработчики PHP ведут работу над API уровня С. И в этом посте я буду по большей части рассказывать о внутренней разработке PHP, хотя если по ходу повествования встретится что-то интересное с точки зрения пользовательского уровня, то я буду делать отступление и объяснять.
Читать полностью »

Форсаж под нагрузкой на Symfony + HHVM + MongoDB + CouchDB + Varnish - 1

Сегодня хотим рассказать о том, как строили систему, к которой сейчас обращается более 1 млн. уникальных посетителей в день (без учёта запросов к API), о тонкостях архитектуры, а также о тех граблях и подводных камнях, с которыми пришлось столкнуться. Поехали...Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js