Файл: Neiron/Kernel/Cookies.php
Строк: 41
<?php
/**
 * PHP 5x framework с открытым иходным кодом
 */
namespace NeironKernel;
/**
 * Класс для работы с cookie
 * @author KpuTuK
 * @version 1.0.0
 * @package Neiron framework
 * @category Kernel
 * @link
 */
class Cookies
{
    /**
     * Массив ключ => данные cookie
     * @var array 
     */
    private $cookies = array();
    /**
     * Масси содержащий все праметры cookie
     * @var array 
     */
    private $fromHeader = array();
    /**
     * Сохраняет Cookie
     * @param string $key Наименование cookie
     * @param string $value Значение cookie
     * @param int $ttl Время, когда срок действия cookie истекает в часах
     * @param string $path Путь к директории на сервере, из которой будут доступны cookie
     * @param string $domain Домен, которому доступны cookie
     * @param bool $secure Указывает на то, что значение cookie должно передаваться от клиента по защищенному HTTPS соединению
     * @param bool $httpOnly Если задано TRUE, cookie будут доступны только через HTTP протокол
     */
    public function set(
        $key,
        $value, 
        $ttl = 1,
        $path = '/',
        $domain = null,
        $secure = null,
        $httpOnly = true
    ){
        $this->fromHeader[] = array(
            'key' => $key,
            'value' => $value,
            'ttl' => time() + ($ttl * 3600),
            'path' => $path,
            'domain' => $domain,
            'secure' => $secure,
            'httpOnly' => $httpOnly
        );
        $this->cookies[$key] = $value;
    }
    /**
     * Возвращает содержимое cookie
     * @param string $key Наименование cookie
     * @return mixed Если cookie задана то вернет ее содержимое если нет то false
     */
    public function get($key)
    {
        if (isset($this->cookies[$key])) {
            return $this->cookies[$key];
        }
        return false;
    }
    /**
     * Удаляет cookie
     * @param string $key Наименование cookie
     */
    public function remove($key)
    {
        if (isset($this->cookies[$key])) {
            $this->set($key, '', -24 * 3600);
        }
    }
    /**
     * Сохраняет массив cookie
     * @param array $cookies Массив cookie
     */
    public function setAll(array $cookies = array())
    {
        $this->cookies = array_merge($this->cookies, $cookies);
    }
    /**
     * Возвращает массив всех cookie
     * @param bool $fromHeaders Если параметр true то вернет массив для заголовков
     * @return type
     */
    public function getAll($fromHeaders = false)
    {
        if ($fromHeaders) {
            return $this->fromHeader;
        }
        return $this->cookies;
    }
}