Написать класс-оболочку для работы с cookie
. Класс должен содержать следующий
набор функций:
По умолчанию кука должна устанавливаться на 1 год. Класс должен быть реализован таким образом, чтобы нельзя было создать более одного экземпляра класса.
class Cookie {
public static function instance() {
static $instance = false;
if( $instance === false ) {
$instance = new static();
}
return $instance;
}
public static function setCookie($key, $value, $time = 31536000) {
setcookie($key, $value, time() + $time, '/') ;
}
public static function getCookie($key) {
if ( isset($_COOKIE[$key]) ){
return $_COOKIE[$key];
}
return null;
}
public static function updateCookie($key, $value, $time = 31536000) {
if ( isset($_COOKIE[$key]) ){
self::deleteCookie($key);
setcookie($key, $value, time() + $time, '/');
}
return null;
}
public static function deleteCookie($key) {
if ( isset($_COOKIE[$key]) ){
self::getCookie($key);
unset($_COOKIE[$key]);
}
}
}
вот что сделал я, и не могу понять, то ли я
pattern singleton
Синглтон характеризуется двумя признаками:
Простейший сниппет для Singleton выглядит так:
class A {
private static $a;
public static function get() {
return static::$a?: static::$a = new static();
}
private function __construct(){}
private function __clone(){}
private function __wakeup(){}
}
Покажу на простом примере паттерна синглотона:
class Cookie
{
public static function instance()
{
static $instance = false;
if( $instance === false )
{
// Позднее статическое связывание (PHP 5.3+)
$instance = new static();
}
return $instance;
}
/**
* Make constructor private, so nobody can call "new Class".
*/
private function __construct() {}
/**
* Make clone magic method private, so nobody can clone instance.
*/
private function __clone() {}
/**
* Make sleep magic method private, so nobody can serialize instance.
*/
private function __sleep() {}
/**
* Make wakeup magic method private, so nobody can unserialize instance.
*/
private function __wakeup() {}
//Добавляете вашу логику
}
И потом можете работать с этим объектом:
$cookie = Cookie::instance();
$cookie->setCookie('name', 'value');
$value = $cookie->getCookie('name');
...
Оборудование для ресторана: новинки профессиональной кухонной техники
Частный дом престарелых в Киеве: комфорт, забота и профессиональный уход
Подскажите, допустим меню зарегистрировано в файле functionsphp
Доброг8о времени! У меня не работает sql запрос находящийся в теле функции php