يمكن أن تكون الأسباب المحتملة على النحو التالي :
Allow to cache requests that use sessions:
عندما تبدأ الجلسة أثناء الطلب ، تحول Symfony الاستجابة إلى استجابة خاصة غير قابلة للتخزين المؤقت لمنع تسريب المعلومات الخاصة. ومع ذلك ، يمكن حتى تخزين الطلبات التي تستخدم الجلسة مؤقتًا في بعض الظروف.
على سبيل المثال ، يمكن تخزين المعلومات المتعلقة ببعض مجموعات المستخدمين في ذاكرة التخزين المؤقت لجميع المستخدمين الذين ينتمون إلى هذه المجموعة. معالجة سيناريوهات التخزين المؤقت المتقدمة هذه خارج نطاق Symfony ، ولكن يمكن حلها باستخدام FOSHttpCacheBundle.
من أجل تعطيل سلوك Symfony الافتراضي الذي يجعل الطلبات التي تستخدم الجلسة غير قابلة للقراءة ، قمنا في Symfony 4.1 بإضافة رأس NO_AUTO_CACHE_CONTROL_HEADER الذي يمكنك إضافته إلى الاستجابة:
use Symfony\Component\HttpKernel\EventListener\AbstractSessionListener;
$response->headers->set(AbstractSessionListener::NO_AUTO_CACHE_CONTROL_HEADER, 'true');
Deprecate some uses of Request::getSession()
استخدام Request :: getSession () في حالة عدم وجود جلسة عمل تم إهمالها في Symfony 4.1 وستؤدي إلى استثناء في Symfony 5.0. الحل هو التحقق أولاً أولاً من وجود جلسة باستخدام طريقة Request :: hasSession ():
if ($request->hasSession() && ($session = $request->getSession())) {
$session->set('some_key', 'some_value');
}
المزيد عن المرجع: Here .