@DarkByte2015

Статические классы и синглтоны?

Как я понял в PHP статических классов нет, хотя есть статические методы + можно делать синглтоны. Но вопрос в том что все это по сути не имеет смысла потому что при каждом запросе к серверу будет заново создаваться синглтон. Возможно ли как то изменить это поведение или хотя бы закэшировать данные? Ну например. У меня в xml файле хранятся какие-то настройки. Я не хочу их парсить при каждом запросе юзера на сервер. Я хочу чтобы они спарсились один раз при запуске сервера и висели себе в памяти пока мне не вздумается их поменять. Самый логичный способ использовать для такой цели статический класс или синглтон. Но тут это бесполезно.
  • Вопрос задан
  • 159 просмотров
Решения вопроса 1
index0h
@index0h
PHP, Golang. https://github.com/index0h
Но вопрос в том что все это по сути не имеет смысла потому что при каждом запросе к серверу будет заново создаваться синглтон

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

Возможно ли как то изменить это поведение или хотя бы закэшировать данные?

memcache, redis, xcache, apcu,... выбирайте

У меня в xml файле хранятся какие-то настройки.

Как минимум можете перевести xml в php код, который в свою очередь закешируется через opcache. При следующем запросе этот код будет браться из пямяти.

Самый логичный способ использовать для такой цели статический класс или синглтон.

Для неумирающей модели выполнения - вполне возможно. В php-шном мире это не так. Закроем глаза на то, что синглтон - антипаттерн, а статика очень близка к этому.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы