Loading...
Здравствуйте, кто как использует куки в slimPHP? В сравнении с версией 2 они убрали из из коробки.. нашел эту библиотеку но так и не разобрался как ее юзать? Может кто-то подскажет?
PasichNIK (12.02.2022 в 13:04)
Здравствуйте, кто как использует куки в slimPHP? В сравнении с версией 2 они убрали из из коробки.. нашел эту библиотеку но так и не разобрался как ее юзать? Может кто-то подскажет?

php
   <?php 

namespace Your\App;

use Psr\Http\Message\ResponseInterface as Response;
use Psr\Http\Message\ServerRequestInterface as Request;

class Cookie
{
/**
* @param Response $response
* @param string $key
* @param string $value
* @return Response
*/
public function deleteCookie(Response $response, $key)
{
$cookie = urlencode($key).'='.
urlencode('deleted').'; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; secure; httponly';
$response = $response->withAddedHeader('Set-Cookie', $cookie);
return $response;
}

/**
* @param Response $response
* @param string $cookieName
* @param string $cookieValue
* @return Response
*/
public function addCookie(Response $response, $cookieName, $cookieValue)
{
$expirationMinutes = 10;
$expiry = new \DateTimeImmutable('now + '.$expirationMinutes.'minutes');
$cookie = urlencode($cookieName).'='.
urlencode($cookieValue).'; expires='.$expiry->format(\DateTime::COOKIE).'; Max-Age=' .
$expirationMinutes * 60 . '; path=/; secure; httponly';
$response = $response->withAddedHeader('Set-Cookie', $cookie);
return $response;
}

/**
* @param Request $request
* @param string $cookieName
* @return string
*/
public function getCookieValue(Request $request, $cookieName)
{
$cookies = $request->getCookieParams();
return isset($cookies[$cookieName]) ? $cookies[$cookieName] : null;
}

}
Anton Metronome (12.02.2022 в 14:01)

php
   <?php 

namespace YourApp;

use PsrHttpMessageResponseInterface as Response;
use PsrHttpMessageServerRequestInterface as Request;

class Cookie
{
/**
* @param Response $response
* @param string $key
* @param string $value
* @return Response
*/
public function deleteCookie(Response $response, $key)
{
$cookie = urlencode($key).'='.
urlencode('deleted').'; expires=Thu, 01-Jan-1970 00:00:01 GMT; Max-Age=0; path=/; secure; httponly';
$response = $response->withAddedHeader('Set-Cookie', $cookie);
return $response;
}

/**
* @param Response $response
* @param string $cookieName
* @param string $cookieValue
* @return Response
*/
public function addCookie(Response $response, $cookieName, $cookieValue)
{
$expirationMinutes = 10;
$expiry = new DateTimeImmutable('now + '.$expirationMinutes.'minutes');
$cookie = urlencode($cookieName).'='.
urlencode($cookieValue).'; expires='.$expiry->format(DateTime::COOKIE).'; Max-Age=' .
$expirationMinutes * 60 . '; path=/; secure; httponly';
$response = $response->withAddedHeader('Set-Cookie', $cookie);
return $response;
}

/**
* @param Request $request
* @param string $cookieName
* @return string
*/
public function getCookieValue(Request $request, $cookieName)
{
$cookies = $request->getCookieParams();
return isset($cookies[$cookieName]) ? $cookies[$cookieName] : null;
}

}


php
   public function getCookieValue(Request $request, $cookieName) 
{
$cookies = $request->getCookieParams();
return isset($cookies[$cookieName]) ? $cookies[$cookieName] : null;
}


косяк :-D

php
   $cookies = []; // если в куках пустой массив (нет установленных кук и их значений) 

var_dump(isset($cookies['name'])); // false, то отработает return null


ключа может не быть, а ты этому ключу присваиваешь null - это какое-никакое, но значение и пользун подумает, что есть такой ключ с таким значением, нужно логику возвращать - булево false, чтобы было при дебаге понятно, что нет такого ключа либо исключение выбрасывать проверкой array_key_exsists($cookieName, $cookie), то есть проверять не установлено ли значение ключа в НЕ NULL, а есть ли вообще такой ключ в массиве
________
посл. ред. 12.02.2022 в 14:25; всего 1 раз(а); by Вилы Выкидные
А че, setcookie() удалили?
Dark_AKC (12.02.2022 в 14:24)
А че, setcookie() удалили?

походу с версии так php4
Онлайн: 1
Время:
Gen. 0.0814
(c) Bym.Guru 2010-2026