Класс CookieShell

Сейчас мы с вами реализуем класс-оболочку для работы с куки. Как вы должны уже знать, работа с куками в PHP реализована не очень однородным образом: чтобы установить куку мы используем одну функцию, а чтобы прочитать - другую.

Давайте сделаем свой набор методов для работы с куками, оформив этот набор в виде следующего класса:

<?php class CookieShell { public function set($name, $value, $time) { // устанавливает куки // $time задает время в сек, через сколько кука умрет } public function get($name) { // получает куки } public function del($name) { // удаляет куки } public function exists($name) { // проверяет наличие куки } } ?>

Давайте посмотрим примеры того, как должен работать наш класс:

<?php $csh = new CookieShell; $csh->set('test', '123', 3600 * 24); echo $csh->get('test'); // выведет 123 ?>
<?php $csh = new CookieShell; $csh->set('test', '123', 3600 * 24); $csh->del('test'); echo $csh->get('test'); // выведет null ?>

Некоторые советы

Работа с куками на чистом PHP кошмарна. Если вы установите куку и попытаетесь ее сразу прочитать через $_COOKIE, то ничего не получится:

<?php setcookie('name', 'value', time() + 3600); var_dump($_COOKIE['name']); // выведет null ?>

Дело в том, что установленная кука будет доступна только после обновления страницы! Но чаще всего она нам нужна сразу, после установки.

Что ж, используем хитрый прием:

<?php setcookie('name', 'value', time() + 3600); $_COOKIE['name'] = 'value'; // принудительно запишем в массив var_dump($_COOKIE['name']); // выведет 'value' ?>

Аналогичным образом я рекомендую поступать и при удалении куки.

Пратические задачи

Реализуйте описанный класс CookieShell. Проверьте его работу.

С помощью созданного вами класса реализуйте счетчик обновления страницы, работающий на куках.