
Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.2.0 RC5 и другие релизы, предложения из PHP Internals, порция полезных инструментов, и многое другое.
Приятного чтения!

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.2.0 RC5 и другие релизы, предложения из PHP Internals, порция полезных инструментов, и многое другое.
Приятного чтения!
С момента нашей последней публикации об интерфейсе статистики для IP-АТС Asterisk прошел уже почти год. Проект растет, развивается, фидбек от клиентов и хаброюзеров позволил многое переосмыслить и существенно доработать его функционал.
Также мы запустили сайт, партнерку, wiki, паблики в соц. сетях, написали биллинг, переписали демон синхронизации на golang… и сделали еще кучу классных штук — всего не перечислишь.
Сегодня я хочу поделиться с сообществом нашими достижениями в развитии продукта.
Вот так сейчас выглядит меню и стартовый отчет:

Под катом я детально раскрою все пункты и подробно расскажу о работе с интерфейсом.
И конечно, в честь «годовщины», всем подарки!
Читать полностью »
Одним из главных аспектов при разработке программного обеспечения вообще и web-приложений в частности я считаю способность программного обеспечения быть изменяемым — адаптируемым к изменениям окружающего мира. Это не значит, что разработчик должен заранее предусмотреть будущие изменения среды обитания своего кода, это значит, что код должен переносить множество циклов рефакторинга, оставаясь при этом работоспособным как можно дольше. А для этого нужно, чтобы последствия изменений, вносимых в код, были либо обозримы, либо предсказуемы. Под катом я суммировал свое понимание областей сокрытия кода, сформировавшееся в результате тесных, практически интимных, отношений с Magento 2 (платформой для построения интернет-магазинов). Изложенное ниже относится во-первых, к языку PHP, во-вторых — к web-приложениям, в-третьих — ко всему остальному.
Добрых суток. Как-то за кадром остался вопрос прироста производительности стандартных функций PHP при работе с массивами в версии 7.*.
Статьи (например тут, тут), освещавшие этот вопрос о более ранних версиях, говорили, что обычные циклы с точки зрения производительности более выгодны.
Читать полностью »

21-го сентября в Киеве состоялся очередной Magento «Dare to Share» Meetup.
Вашему вниманию предлагаются видео докладов прозвучавших в рамках мероприятия, а также анонсы следующих Magento ивентов этой осенью.
) — Magento 2 directions (Укр.)
) — Микросервисы для Мagento
) — Magento Contribution Day как формат Хакатона
) — Динамическое редактирование фронтенда в Magento
) — Magento Cloud
Тезисы докладов и анонсы следующих ивентов можно прочитать под Катом.
Читать полностью »

Честно предупреждаю: воспринимайте этот текст с определённой долей скептицизма. Я лишь недавно начал знакомство с внутренностями PHP, но хотел бы рассказать вам о том, что творится за кулисами бага #75237.

В конце прошлого лета я задумался над простым способом авторизации пользователей форума в мобильном приложении. Как раз в это время вышла версия Laravel 5.3 вместе с пакетом Laravel Passport, где подобное предлагалось из коробки. Раньше я не работал с OAuth 2, так что начал не спеша разбираться. Решил испытать механизм на крысах, в небольшой игре на Unity про Крысу на Стене. Сама игра — простейший раннер, но механизм авторизации может представлять некоторый интерес, если ранее не сталкивался с этим. Я пользовался официальной документацией и статьей про Passport. На хабре подходящей статьи до сих пор не появилось, поэтому решил сам скомпоновать материал, реализовав для интереса добавление рекордов и базовое взаимодействие с клиентом на Unity. Ввиду моей неторопливости это растянулось почти на год, так что сейчас в примерах используются уже Laravel 5.5 и Unity 2017.1.
В первой части статьи разберёмся, как с помощью токена авторизации добавить рекорд пользователя на сайт.
Читать полностью »
Часто при разработке и выводе контента появляется необходимость использования постраничной навигации. Кто-то скорее всего использует готовые решения от своего фреймворка. Кто-то, возможно, не заморачивается и лупит страницы просто циклом. У кого-то есть свои наработки в этом направлении. Вот я как раз и хочу поделиться своим решением данной задачи.
Читать полностью »
Привет! Как и обещали, сегодня мы готовы отвечать на вопросы про бэкенд в Avito, разработку серверной части в целом и про высокие нагрузки в частности. Как работается с сайтом, на который ежемесячно заходит почти четверть населения России? Спросите у нас! Отвечать будем с 12 до 19 часов по московскому времени. Под катом я представляю пять моих коллег, которые сегодня будут с вами на связи и напоминаю о возможных темах диалога.
AMA!

В статье описана первичная настройка сервера. Описанные действия, проводились на виртуальной машине Vagrant и VPS.
Установим Nginx последней стабильной версии (на данный момент 1.12.1).
Для настройки репозитория нужно добавить в конец файла /etc/apt/sources.list пару строк.
Открываем файл sources.list для редактирования
sudo nano /etc/apt/sources.list
Дописываем в конец файла строки:
deb http://nginx.org/packages/ubuntu/ xenial nginx
deb-src http://nginx.org/packages/ubuntu/ xenial nginx
Где xenial – кодовое имя дистрибутива Ubuntu (16.04 – это xenial).
Сохраняем и закрываем файл.
Для проверки подлинности подписи репозитория nginx необходимо добавить ключ, которым были подписаны пакеты и репозиторий, в связку ключей программы apt.
Читать полностью »