1616use Config \App ;
1717use Config \Cookie as CookieConfig ;
1818use Config \Services ;
19+ use Config \Session as SessionConfig ;
1920use Psr \Log \LoggerAwareTrait ;
2021use SessionHandlerInterface ;
2122
@@ -164,13 +165,28 @@ public function __construct(SessionHandlerInterface $driver, App $config)
164165 {
165166 $ this ->driver = $ driver ;
166167
167- $ this ->sessionDriverName = $ config ->sessionDriver ;
168- $ this ->sessionCookieName = $ config ->sessionCookieName ?? $ this ->sessionCookieName ;
169- $ this ->sessionExpiration = $ config ->sessionExpiration ?? $ this ->sessionExpiration ;
170- $ this ->sessionSavePath = $ config ->sessionSavePath ;
171- $ this ->sessionMatchIP = $ config ->sessionMatchIP ?? $ this ->sessionMatchIP ;
172- $ this ->sessionTimeToUpdate = $ config ->sessionTimeToUpdate ?? $ this ->sessionTimeToUpdate ;
173- $ this ->sessionRegenerateDestroy = $ config ->sessionRegenerateDestroy ?? $ this ->sessionRegenerateDestroy ;
168+ /** @var SessionConfig|null $session */
169+ $ session = config ('Session ' );
170+
171+ // Store Session configurations
172+ if ($ session instanceof SessionConfig) {
173+ $ this ->sessionDriverName = $ session ->driver ;
174+ $ this ->sessionCookieName = $ session ->cookieName ?? $ this ->sessionCookieName ;
175+ $ this ->sessionExpiration = $ session ->expiration ?? $ this ->sessionExpiration ;
176+ $ this ->sessionSavePath = $ session ->savePath ;
177+ $ this ->sessionMatchIP = $ session ->matchIP ?? $ this ->sessionMatchIP ;
178+ $ this ->sessionTimeToUpdate = $ session ->timeToUpdate ?? $ this ->sessionTimeToUpdate ;
179+ $ this ->sessionRegenerateDestroy = $ session ->regenerateDestroy ?? $ this ->sessionRegenerateDestroy ;
180+ } else {
181+ // `Config/Session.php` is absence
182+ $ this ->sessionDriverName = $ config ->sessionDriver ;
183+ $ this ->sessionCookieName = $ config ->sessionCookieName ?? $ this ->sessionCookieName ;
184+ $ this ->sessionExpiration = $ config ->sessionExpiration ?? $ this ->sessionExpiration ;
185+ $ this ->sessionSavePath = $ config ->sessionSavePath ;
186+ $ this ->sessionMatchIP = $ config ->sessionMatchIP ?? $ this ->sessionMatchIP ;
187+ $ this ->sessionTimeToUpdate = $ config ->sessionTimeToUpdate ?? $ this ->sessionTimeToUpdate ;
188+ $ this ->sessionRegenerateDestroy = $ config ->sessionRegenerateDestroy ?? $ this ->sessionRegenerateDestroy ;
189+ }
174190
175191 // DEPRECATED COOKIE MANAGEMENT
176192 $ this ->cookiePath = $ config ->cookiePath ?? $ this ->cookiePath ;
@@ -186,7 +202,7 @@ public function __construct(SessionHandlerInterface $driver, App $config)
186202 'path ' => $ cookie ->path ?? $ config ->cookiePath ,
187203 'domain ' => $ cookie ->domain ?? $ config ->cookieDomain ,
188204 'secure ' => $ cookie ->secure ?? $ config ->cookieSecure ,
189- 'httponly ' => true , // for security
205+ 'httponly ' => true , // for session
190206 'samesite ' => $ cookie ->samesite ?? $ config ->cookieSameSite ?? Cookie::SAMESITE_LAX ,
191207 'raw ' => $ cookie ->raw ?? false ,
192208 ]))->withPrefix ('' ); // Cookie prefix should be ignored.
0 commit comments