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

Голосование по сокращенному синтаксису для функций завершено (51 "за", 8 "против").

Было:

$result = array_filter($paths,  function ($v) use ($names) {
    return in_array($v, $names);
});

Стало:

$result = array_filter($paths,  fn($v) => in_array($v, $names));

Подробности под катом

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

Навеяно комментарием под постом Фибоначчи на собеседовании. Пользователь pavellyzhin упомянул следующую задачу на собеседовании (комментарий):

Больше года назад откликнулся на вакансию «php-программист», прислали ТЗ и там было задание с Фибоначчи: выбрать все четные числа Фибоначчи в диапазоне от 1 до 10000. Решил с помощью цикла(for). Еще там нужно было SQL-запрос составить на выборку ближайших дней рождений пользователей, что-то сверстать, точно не помню и какую-то функцию написать. Все сделал, отправил. Прислали ответ: «по итогам тестового задания Вы не приняты». Что конкретно им не понравилось так и не написали. Вот сейчас сижу и думаю, наверное все-таки из-за Фибоначчи пролетел… :)

В данном посте я собираюсь показать как можно было решить эту задачу эффектно, а может даже и эффективно, но это не точно. Заодно продемонстрирую парочку из тысяч доказанных про числа Фибоначчи фактов.
Читать полностью »

Одним прекрасным рабочим днём я писал unit-тесты для бизнес-логики на проекте, в котором работаю. Передо мною стояла задача инициализировать некоторые приватные свойства класса определёнными значениями.

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

Если бы хайлоад преподавали в школе, в учебнике по этому предмету была бы такая задача. «У соцсети N есть 2 000 серверов, на которых 150 000 файлов объемом по 900 Мб PHP-кода и стейджинг-кластер на 50 машин. На серверы код деплоится 2 раза в день, на стейджинг-кластере код обновляется раз в несколько минут, а еще дополнительно есть „хотфиксы“ — небольшие наборы файлов, которые выкладываются вне очереди на все или на выделенную часть серверов, не дожидаясь полной выкладки. Вопрос: считаются ли такие условия хайлоадом и как в них деплоить? Напишите не менее 5 вариантов деплоя». Про задачник по хайлоаду можем только мечтать, но уже сейчас мы знаем, что Юрий Насретдинов (youROCK) точно бы решил эту задачу и получил «пятерку».

На простом решении Юрий не остановился, а дополнительно провел доклад, в котором раскрыл тему понятия «деплой кода», рассказал про классические и альтернативные решения масштабного деплоя кода на PHP, проанализировал их производительность и презентовал самописную систему деплоя MDK.
Читать полностью »

В этой статье я расскажу как использовать pinba совместно с clickhouse и grafana вместо pinba_engine и pinboard.
На php-проекте pinba — пожалуй единственный надёжный способ понять, что происходит с производительностью. Правда обычно pinba внедряется только тогда, когда уже наблюдаются проблемы и не понятно «где копать».
Часто никто понятия не имеет сколько раз в секунду/минуту вызывается тот или иной скрипт и начинают оптимизировать «на ощупь», начиная с тех мест, что кажутся логичнее.
Кто-то анализирует логи nginx, а кто-то медленные запросы в бд.
Конечно pinba не была бы лишней, но есть несколько причин, почему она есть далеко не на каждом проекте.
Статистика и мониторинг PHP скриптов в реальном времени. ClickHouse и Grafana идут на помощь к Pinba - 1
Читать полностью »

PHP-Дайджест № 154 (9 – 21 апреля 2019) - 1

Свежая подборка со ссылками на новости и материалы. В выпуске: Zend Framework переходит под крыло Linux Foundation, новости из PHP Internals, порция полезных инструментов, и многое другое.

Приятного чтения!

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

На рынке труда программисты PHP являются одними из наиболее востребованных специалистов. За последние 3 года их популярность среди работодателей выросла на более чем на 12%. PHP — самый распространенный язык программирования общего назначения с открытым исходным кодом, многие наши клиенты используют его в разработке, поэтому в своих запросах от работодателей мы часто встречаемся с потребностью в программистах, работающих именно с данным языком. В статье мы проанализировали рынок труда PHP разработчиков, сформировали уровень заработных плат на основе зарплатных ожиданий соискателей и возможностей компаний, а также выявили уровень заинтересованности работодателей в трудоустройстве PHP специалистов.
Читать полностью »

PHP GR8: повысит ли JIT производительность PHP 8 - 1

PHP — один из основных языков разработки в Badoo. В наших дата-центрах тысячи процессорных ядер заняты выполнением миллионов строк кода на PHP. Мы внимательно следим за новинками и активно ищем пути улучшения производительности, так как на наших объёмах даже небольшая оптимизация приводит к существенной экономии ресурсов. Одна из главных новостей в области производительности PHP — появление JIT в восьмой версии языка. Это, безусловно, не могло остаться без нашего внимания, и мы перевели статью о том, что есть JIT, как он будет реализован в PHP, зачем его решили делать и что от него ждать.

Если вы не вышли из пещеры или не прибыли из прошлого (в этом случае добро пожаловать), то уже знаете, что в PHP 8 будет JIT: на днях тихо-мирно завершилось голосование, и подавляющее большинство участников высказались за внедрение, так что всё решено.
 
Можно в порыве радости даже изобразить несколько безумных движений как на фото (это, к слову, называется «детройтский JIT»:
 Читать полностью »

Голосовой секретарь на вебхуках - 1

Один из последних трендов — онлайн чат-боты. Но, что делать с теми клиентами, которые находятся оффлайн? Большой процент людей предпочитает звонить по телефону. Для них нужен или большой штат операторов, или решение по автоматизации работы с голосом. Предлагаем решение для уменьшения работы и затрат (и даже почти не нагрузит вашего программиста).

Как быстро и легко программировать любое голосовое меню, автоинформатор, робота-секретаря с привязкой к своей базе клиентов?

Спойлер: Все реализовано на webhooks и приведен пример на PHP.

Обсуждаем под катом.
Читать полностью »

Как быстро попробовать CQRS-ES в Laravel или пишем банк на PHP - 1
Недавно в подкасте "Цинковый прод" мы с товарищами обсуждали паттерн CQRS/ES и некоторые особенности её реализации в Elixir. Т.к. я в работе использую Laravel, грех было не покопаться в интернетах и не найти как же можно потягать этот подход в экосистеме данного фреймворка.
Всех приглашаю под кат, постарался максимально тезисно описать тему.

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


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