В Symfony в API Platform 3 версии появился такой интересный и полезный инструмент, который называется State Processors или процессоры состояния.
Давайте разберемся, что это такое и для чего это нужно.
По сути, State Processors - это специальные классы, которые описывают, что нужно сделать, когда состояние нашей сущности меняется. State Processors - это процессоры состояния.
Обратите внимание, что их можно применять только для тех операций, которые выполняются методом POST, PUT, PATCH и DELETE. Только в те моменты, когда наша сущность каким-то образом видоизменяется. Т.е. когда создается новый элемент сущности, редактируется элемент сущности, удаляется.
В эти моменты мы можем сделать что-то с этой сущностью еще, либо просто выполнить, какие-то дополнительные действия, в момент этих изменений.
Где это может быть полезно?
Предположим, вы разрабатываете некое приложение на Frontend фреймворке (Vue.js или React) и вам нужно организовать регистрацию пользователей. Но, проблема заключается в том, что когда вы будете регистрировать нового пользователя, ему нужно серверными средствами зашифровать его пароль, прежде чем сохранить его в базе данных.
Если вы будете это делать с помощью прямого запроса к API Platform, зашифровать пароль будет проблематично, т.к. обычные методы, не позволяют нам видоизменить те данные, которые мы отправили от клиента к серверу. Пароль пришел в незашифрованном виде, но серверным образом зашифровать его у нас не получиться.
State Processor - это один из способов, как можно решить эту проблему. В момент, когда пришел POST запрос, мы пароль шифруем и сохраняем в базе данных.
Другой пример, когда вам нужно с помощью серверных скриптов нужно каким-то образом видоизменять те данные, которые нужно сохранить.
Например, вы сохраняете какую-то запись с каким-то серверным содержим в вашем проекте и вам нужно убрать все запятые, все точки или обработать каким-то образом обработать этот текст, серверными средствами, соответственно, вы можете воспользоваться процессорами состояния.
Еще, например, при удалении какого-то элемента сущности, нужно отправлять на email пользователя, что такой-то элемент удален. Или когда создается новый пользователь, нужно отправлять уведомление в телеграм или email ящик, вы тоже можете воспользоваться State Processors.
Вот так вот в вводных чертах что это такое и для чего это нужно. А в следующих видео мы посмотрим, как с этими State Processors работать в Symfony и применять их на практике.
Чтобы оставить сообщение, зарегистрируйтесь/войдите на сайт через:
Email - зарегистрироваться / войти