Как уменьшить огромное количество файлов сессий?

AmdY

Пью пиво
Команда форума
Благодарю за советы, пригодятся в будущем, а пока что применил альтернативное решение - добавил в robots.txt исключение для бота semrush. Соответственно теперь бот не заходит и для него не создается миллион файлов сессий.
тоесть ты запретил индексировать сайт поисковым системам?
Нету в семерке провайдера такого изначально)

PS: Да, можно создать и зарегить, но лично у меня напрямую это не взлетело, за те минут 5-10, что я пробовал. Больше времени на тесты нету пока)
Есть https://github.com/laravel/laravel/blob/master/config/app.php#L160
 

AmdY

Пью пиво
Команда форума
В ларке скорее всего будет достаточно подменить стандартный миддлвар - https://github.com/laravel/laravel/blob/master/app/Http/Kernel.php#L35 на свой. поумнее. фильтр по юзер-агенту - довольно простая вещь. ничего не сломает.
Догадайся, какой класс захардкожен https://github.com/laravel/framework/blob/c7a3ef785613e659a2288bfbfd6b2d17328a094b/src/Illuminate/Session/SessionServiceProvider.php#L22
 

Adelf

Administrator
Команда форума
достаточно убрать его из миддлварок и поставить свой.. и пофиг на это. Это и не хардкод, а просто регистрация синглтона в контейнере.

это известная магия. обсуждалось не так давно гдето...
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
зачем лезть в дефолтные списки? SessionServiceProvider получает manager как зависимость, а менеджер делает нужный хендлер
__construct(SessionManager $manager
для этой цели есть даже NullSessionHandler

вообще, сессии - анахронизм
 
  • Like
Реакции: AmdY

grigori

( ͡° ͜ʖ ͡°)
Команда форума
Даже представлять не буду, я тут мультидоменный сайт пилю на L, сессии это была боль.

Напрямую варик выше - не рабочий, надо сильно копать. От сессий зависит еще миддлварь для ошибок и csrf токенов. @Adelf скажет точнее, он в ларке больше сечет.
ну я тестировать эту хренотень не буду
судя по SessionServiceProvider, там захардкоджены имена классов провайдеров (здравствуй, Yii!), и как в симфони просто написать свой сервис нельзя, надо как-то указать 'custom' с именем в параметре - ну, для тех, кто yii не любит
 

fixxxer

К.О.
Партнер клуба
Да какой, блин, хардкод.
SessionServiceProvider - это, считай, дефолтная секция конфига контейнера - он в ларавеле code driven. На него никто, кроме конфига твоего приложения, не ссылается. Делаешь свой SessionServiceProvider и все.
В ларке много идиотского хардкода, но это не тот случай.
 
Сверху