Pull to refresh
15
0
Send message

Symfony под капотом: Symfony Messenger и механизм повторной обработки сообщений при ошибках

Level of difficultyMedium
Reading time12 min
Views6.2K

Привет! Меня зовут Ваня, последние несколько лет я занимаюсь backend-разработкой в Сравни. Моя команда разрабатывает интеграции с сервисами наших партнёров, код пишем на PHP и Symfony Framework.

При работе с интеграциями мы часто имеем дело со сбоями в сторонних сервисах, и нам очень важна возможность восстановления после таких ошибок. Для решения этой задачи у Symfony есть прекрасный инструмент – нужно только правильно им воспользоваться!

В этой статье я расскажу о том, как в Messenger-компоненте Symfony устроен механизм повторной обработки сообщений при ошибках (или по-простому – механизм ретраев), а также поделюсь опытом его использования и некоторыми важными нюансами его работы.

Читать далее
Total votes 28: ↑28 and ↓0+28
Comments0

Magento 2 UI Components. Часть 1: общее устройство

Reading time11 min
Views7.6K

Привет! Меня зовут Павел и я Magento 2 бэкенд-разработчик. Если спросить у любого практикующего M2 разработчика, какие аспекты М2 вызывают наиболее сильную боль, — уверен, что с большим отрывом будут лидировать UI компоненты (Ui Components). Это тот самый случай, когда их все используют, но немногие знают, как в действительности они устроены и как они работают. Сложившаяся ситуация отчасти вызвана достаточно скудным описанием устройства компонентов в документации, особенно если принять во внимание сложность и некоторую неочевидность устройства компонентов. Сегодня мы начнем цикл статей про M2 Ui Components, чтобы полностью закрыть данную тему. Хотя на хабре уже есть превосходные статьи, которые рассматривают тему Ui Components с того или иного ракурса, системно ее на Хабре не раскрывал еще никто. В общем, иди за мной Нео, и я покажу тебе, насколько глубока кроличья нора. Погнали!

Читать далее
Total votes 6: ↑5 and ↓1+6
Comments6

Основы Elasticsearch

Reading time12 min
Views690K

Elasticsearch — поисковый движок с json rest api, использующий Lucene и написанный на Java. Описание всех преимуществ этого движка доступно на официальном сайте. Далее по тексту будем называть Elasticsearch как ES.


Подобные движки используются при сложном поиске по базе документов. Например, поиск с учетом морфологии языка или поиск по geo координатам.


В этой статье я расскажу про основы ES на примере индексации постов блога. Покажу как фильтровать, сортировать и искать документы.

Читать дальше →
Total votes 39: ↑38 and ↓1+37
Comments78

JavaScript: замена фона видео и реализация интересных эффектов на основе координат лица в реальном времени

Reading time11 min
Views4.7K


Привет, друзья!


Я продолжаю изучать MediaPipe — библиотеку с открытым исходным кодом от Google, предоставляющую "кроссплатформенные и кастомизируемые решения на основе машинного обучения для работы с медиа", и в этой статье хочу рассказать вам о 2 инструментах:


  • Selfie Segmentation, выделяющий людей на сцене, что позволяет осуществлять замену фона на кадрах видео в процессе потоковой передачи соответствующих данных;
  • Face Mesh, предоставляющий сетку лица человека, состоящую из 468 контрольных точек с координатами в трехмерном пространстве, что позволяет реализовать некоторые интересные визуальные эффекты.

Репозиторий с кодом проекта.


Если вам это интересно, прошу под кат.

Читать дальше →
Total votes 21: ↑21 and ↓0+21
Comments4

[Symfony 5] Раздельная авторизация для админов и пользователей с двумя разными сущностями и формами входа

Reading time11 min
Views17K

Цель


Создать в Symfony 5 раздельную авторизацию:

  • Администратор — будет иметь сущность Admin, url для входа /admin/login
  • Пользователь — будет иметь сущность User, url для входа /login
  • Данные для входа не должны пересекаться, мы не можем авторизоваться как User на странице /admin/login
  • Должны быть созданы две разные Entities
  • Должны быть созданы два разных контроллера для входа и два разных Security
  • Возможность настройки переадресации после авторизации отдельно друг от друга
  • Возможность использовать разные авторизационные данные (например, для User мы хотим, чтобы пользователи вводили email/password, а для Admin обеспечить доп. защиту, добавив какой-нибудь Uuid

Зачем нужен этот гайд?


У меня стояла задача разделить форму входа с сущностью User на две разные — для пользователя (entity User) и для администратора (entity Admin) для нормального функционала админ панели (в данном случае EasyAdmin).

В данном туториале я распишу пошагово весь путь, начиная с установки самого фреймворка, и заканчивая созданием двух разных форм авторизации.
Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments12

Шпаргалка по работе с медиа в браузере

Reading time19 min
Views14K



Привет, друзья!


В данной шпаргалке представлены все основные интерфейсы и методы по работе с медиа в браузере, описываемые в следующих спецификациях:



Шпаргалка представлена в форме вопрос-ответ.



Туториалы по теме:



Если вам это интересно, прошу под кат.

Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments1

Docker + php-fpm + PhpStorm + Xdebug

Reading time8 min
Views64K
Не так давно тимлид нашей команды сказал: ребята я хочу, чтобы у всех была одинаковая среда разработки для наших боевых проектов + мы должны уметь дебажить всё — и web приложения, и api запросы, и консольные скрипты, чтобы экономить свои нервы и время. И поможет нам в этом docker.

Сказано — сделано. Подробности под катом.
Читать дальше →
Total votes 31: ↑27 and ↓4+23
Comments80

Information

Rating
Does not participate
Registered
Activity

Specialization

Backend Developer
Lead
Git
PHP
OOP
Magento
Symfony