Приложения Symfony 4 не сохраняют состояние? - PullRequest
0 голосов
/ 06 февраля 2019

Чтобы развернуть приложение на нескольких машинах, мне необходимо разработать приложение без сохранения состояния.

Итак, мой вопрос.Symfony без гражданства?Или использует серверные переменные Symfony, чтобы на нескольких серверах у меня возникли проблемы?

Я установил параметр без сохранения состояния в моем файле security.yml, равный true

firewalls: dev: pattern: ^/(_(profiler|wdt)|css|images|js)/ security: false main: anonymous: true stateless: true

IsЕсть ли что-то еще в Symfony, о котором я должен подумать, чтобы создать полное приложение без сохранения состояния?

С наилучшими пожеланиями Майкл

Ответы [ 3 ]

0 голосов
/ 06 февраля 2019

Symfony не нужно настраивать для использования файлов cookie и сеансов, он может в равной степени (хотя и потребует некоторой конфигурации) использовать такие методы, как JWT или токены на предъявителя.

Точно так же он также может бытьнастройка для использования какой-либо формы общей базы данных для хранения информации из сеанса (Redis очень популярен для этого, и это то, что я сейчас использую).Ранее я использовал Memcached, но MongoDB и Mysql также вполне возможны.

0 голосов
/ 07 февраля 2019

Обобщать всегда немного опасно, но я подозреваю, что большинство приложений Symfony имеют состояние сервера в виде сеансов.В частности, если приложение требует, чтобы пользователь вошел в систему, вероятно, используются сеансы.

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

На самом деле я никогда не пытался использовать опцию true Stateless.Не уверен, что произойдет, если вы попытаетесь использовать сеанс.Но это стоит эксперимента.И до тех пор, пока вы на самом деле не используете сеансы, тогда ваше приложение должно быть без состояний.

А если вам нужно какое-то состояние (возможно, для отслеживания входа пользователя в систему), то существуют альтернативы сеансов без состояния, такие как Json Web Tokens (JWT) .

0 голосов
/ 06 февраля 2019

Это действительно зависит от того, что вы собираетесь использовать.Например, параметры базы данных и параметры app_env в соответствии с лучшими практиками задаются как переменные ENS на компьютере

...