Seditio Source
Root |
./othercms/croogo-4.0.7/vendor/cakephp/cakephp/src/Http/Client/CookieCollection.php
<?php
/**
 * CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
 * Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
 *
 * Licensed under The MIT License
 * Redistributions of files must retain the above copyright notice.
 *
 * @copyright     Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
 * @link          https://cakephp.org CakePHP(tm) Project
 * @since         3.0.0
 * @license       https://opensource.org/licenses/mit-license.php MIT License
 */
namespace Cake\Http\Client;

use
Cake\Http\Cookie\CookieCollection as BaseCollection;
use
Cake\Http\Cookie\CookieInterface;

/**
 * Container class for cookies used in Http\Client.
 *
 * Provides cookie jar like features for storing cookies between
 * requests, as well as appending cookies to new requests.
 *
 * @deprecated 3.5.0 Use Cake\Http\Cookie\CookieCollection instead.
 */
class CookieCollection extends BaseCollection
{
   
/**
     * {@inheritDoc}
     */
   
public function __construct(array $cookies = [])
    {
       
parent::__construct($cookies);

       
deprecationWarning('Use Cake\Http\Cookie\CookieCollection instead.');
    }

   
/**
     * Store the cookies from a response.
     *
     * Store the cookies that haven't expired. If a cookie has been expired
     * and is currently stored, it will be removed.
     *
     * @param Response $response The response to read cookies from
     * @param string $url The request URL used for default host/path values.
     * @return void
     */
   
public function store(Response $response, $url)
    {
       
$host = parse_url($url, PHP_URL_HOST);
       
$path = parse_url($url, PHP_URL_PATH);
       
$path = $path ?: '/';

       
$header = $response->getHeader('Set-Cookie');
       
$cookies = $this->parseSetCookieHeader($header);
       
$cookies = $this->setRequestDefaults($cookies, $host, $path);
        foreach (
$cookies as $cookie) {
           
$this->cookies[$cookie->getId()] = $cookie;
        }
       
$this->removeExpiredCookies($host, $path);
    }

   
/**
     * Get stored cookies for a URL.
     *
     * Finds matching stored cookies and returns a simple array
     * of name => value
     *
     * @param string $url The URL to find cookies for.
     * @return array
     */
   
public function get($url)
    {
       
$path = parse_url($url, PHP_URL_PATH) ?: '/';
       
$host = parse_url($url, PHP_URL_HOST);
       
$scheme = parse_url($url, PHP_URL_SCHEME);

        return
$this->findMatchingCookies($scheme, $host, $path);
    }

   
/**
     * Get all the stored cookies as arrays.
     *
     * @return array
     */
   
public function getAll()
    {
       
$out = [];
        foreach (
$this->cookies as $cookie) {
           
$out[] = $this->convertCookieToArray($cookie);
        }

        return
$out;
    }

   
/**
     * Convert the cookie into an array of its properties.
     *
     * Primarily useful where backwards compatibility is needed.
     *
     * @param \Cake\Http\Cookie\CookieInterface $cookie Cookie object.
     * @return array
     */
   
protected function convertCookieToArray(CookieInterface $cookie)
    {
        return [
           
'name' => $cookie->getName(),
           
'value' => $cookie->getValue(),
           
'path' => $cookie->getPath(),
           
'domain' => $cookie->getDomain(),
           
'secure' => $cookie->isSecure(),
           
'httponly' => $cookie->isHttpOnly(),
           
'expires' => $cookie->getExpiresTimestamp(),
        ];
    }
}

// @deprecated 3.4.0 Add backwards compat alias.
class_alias('Cake\Http\Client\CookieCollection', 'Cake\Network\Http\CookieCollection');