@@ -158,10 +158,11 @@ public function isHeaderOnly()
158158 * @param string $domain Domain name
159159 * @param bool $secure If secure
160160 * @param bool $httpOnly If uses only HTTP
161+ * @param string $samesite SameSite cookies
161162 *
162163 * @throws <b>sfException</b> If fails to set the cookie
163164 */
164- public function setCookie ($ name , $ value , $ expire = null , $ path = '/ ' , $ domain = '' , $ secure = false , $ httpOnly = false )
165+ public function setCookie ($ name , $ value , $ expire = null , $ path = '/ ' , $ domain = '' , $ secure = false , $ httpOnly = false , $ samesite = '' )
165166 {
166167 if ($ expire !== null )
167168 {
@@ -187,6 +188,7 @@ public function setCookie($name, $value, $expire = null, $path = '/', $domain =
187188 'domain ' => $ domain ,
188189 'secure ' => $ secure ? true : false ,
189190 'httpOnly ' => $ httpOnly ,
191+ 'samesite ' => $ samesite
190192 );
191193 }
192194
@@ -365,7 +367,18 @@ public function sendHttpHeaders()
365367 // cookies
366368 foreach ($ this ->cookies as $ cookie )
367369 {
368- setrawcookie ($ cookie ['name ' ], $ cookie ['value ' ], $ cookie ['expire ' ], $ cookie ['path ' ], $ cookie ['domain ' ], $ cookie ['secure ' ], $ cookie ['httpOnly ' ]);
370+ if (PHP_VERSION_ID < 70300 ) {
371+ setrawcookie ($ cookie ['name ' ], $ cookie ['value ' ], $ cookie ['expire ' ], $ cookie ['path ' ], $ cookie ['domain ' ], $ cookie ['secure ' ], $ cookie ['httpOnly ' ]);
372+ } else {
373+ setrawcookie ($ cookie ['name ' ], $ cookie ['value ' ], array (
374+ 'expires ' => $ cookie ['expire ' ],
375+ 'path ' => $ cookie ['path ' ],
376+ 'domain ' => $ cookie ['domain ' ],
377+ 'secure ' => $ cookie ['secure ' ],
378+ 'httpOnly ' => $ cookie ['httpOnly ' ],
379+ 'samesite ' => $ cookie ['samesite ' ],
380+ ));
381+ }
369382
370383 if ($ this ->options ['logging ' ])
371384 {
0 commit comments