Overview

Namespaces

  • Peach
    • DF
    • DT
    • Http
      • Body
      • Header
    • Markup
    • Util

Classes

  • Peach\DF\Base64Codec
  • Peach\DF\CodecChain
  • Peach\DF\JsonCodec
  • Peach\DF\SerializationCodec
  • Peach\DF\Utf8Codec
  • Peach\DT\AbstractTime
  • Peach\DT\Clock
  • Peach\DT\Date
  • Peach\DT\Datetime
  • Peach\DT\DefaultClock
  • Peach\DT\FixedClock
  • Peach\DT\FormatWrapper
  • Peach\DT\HttpDateFormat
  • Peach\DT\OffsetClock
  • Peach\DT\ShiftFormat
  • Peach\DT\SimpleFormat
  • Peach\DT\TimeEquator
  • Peach\DT\Timestamp
  • Peach\DT\TimeWrapper
  • Peach\DT\UnixTimeFormat
  • Peach\DT\Util
  • Peach\DT\W3cDatetimeFormat
  • Peach\Http\Body
  • Peach\Http\Body\CodecRenderer
  • Peach\Http\Body\StringRenderer
  • Peach\Http\DefaultEndpoint
  • Peach\Http\Header\CookieItem
  • Peach\Http\Header\CookieOptions
  • Peach\Http\Header\HttpDate
  • Peach\Http\Header\NoField
  • Peach\Http\Header\QualityValues
  • Peach\Http\Header\Raw
  • Peach\Http\Header\SetCookie
  • Peach\Http\Header\Status
  • Peach\Http\Request
  • Peach\Http\Response
  • Peach\Http\Util
  • Peach\Markup\AbstractHelper
  • Peach\Markup\AbstractRenderer
  • Peach\Markup\BaseHelper
  • Peach\Markup\BreakControlWrapper
  • Peach\Markup\Builder
  • Peach\Markup\Code
  • Peach\Markup\Comment
  • Peach\Markup\ContainerElement
  • Peach\Markup\Context
  • Peach\Markup\DebugBuilder
  • Peach\Markup\DebugContext
  • Peach\Markup\DefaultBreakControl
  • Peach\Markup\DefaultBuilder
  • Peach\Markup\DefaultContext
  • Peach\Markup\Element
  • Peach\Markup\EmptyElement
  • Peach\Markup\HelperObject
  • Peach\Markup\HtmlHelper
  • Peach\Markup\Indent
  • Peach\Markup\MinimalBreakControl
  • Peach\Markup\NameBreakControl
  • Peach\Markup\NameValidator
  • Peach\Markup\NodeList
  • Peach\Markup\None
  • Peach\Markup\SgmlRenderer
  • Peach\Markup\Text
  • Peach\Markup\XmlRenderer
  • Peach\Util\AbstractMapEntry
  • Peach\Util\ArrayMap
  • Peach\Util\ArrayMapEntry
  • Peach\Util\Arrays
  • Peach\Util\DefaultComparator
  • Peach\Util\DefaultEquator
  • Peach\Util\HashMap
  • Peach\Util\HashMapEntry
  • Peach\Util\Strings
  • Peach\Util\Values

Interfaces

  • Peach\DF\Codec
  • Peach\DT\Format
  • Peach\DT\Time
  • Peach\Http\BodyRenderer
  • Peach\Http\Endpoint
  • Peach\Http\HeaderField
  • Peach\Http\MultiHeaderField
  • Peach\Http\SingleHeaderField
  • Peach\Markup\BreakControl
  • Peach\Markup\Component
  • Peach\Markup\Container
  • Peach\Markup\Helper
  • Peach\Markup\Node
  • Peach\Markup\Renderer
  • Peach\Util\Comparable
  • Peach\Util\Comparator
  • Peach\Util\Equator
  • Peach\Util\Map
  • Peach\Util\MapEntry
  • Overview
  • Namespace
  • Class
 1: <?php
 2: /*
 3:  * Copyright (c) 2016 @trashtoy
 4:  * https://github.com/trashtoy/
 5:  * 
 6:  * Permission is hereby granted, free of charge, to any person obtaining a copy of
 7:  * this software and associated documentation files (the "Software"), to deal in
 8:  * the Software without restriction, including without limitation the rights to use,
 9:  * copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the
10:  * Software, and to permit persons to whom the Software is furnished to do so,
11:  * subject to the following conditions:
12:  * 
13:  * The above copyright notice and this permission notice shall be included in all
14:  * copies or substantial portions of the Software.
15:  * 
16:  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17:  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
18:  * FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
19:  * COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
20:  * IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
21:  * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22:  */
23: /**
24:  * PHP class file.
25:  * @auhtor trashtoy
26:  * @since  2.2.0
27:  */
28: namespace Peach\Http\Header;
29: 
30: use Peach\Util\Arrays;
31: 
32: /**
33:  * 1 行分の Set-Cookie ヘッダーをあらわすクラスです.
34:  */
35: class CookieItem
36: {
37:     /**
38:      * Cookie 名をあらわす文字列です.
39:      * 
40:      * @var string
41:      */
42:     private $name;
43:     
44:     /**
45:      * Cookie 値をあらわす文字列です.
46:      * 
47:      * @var string
48:      */
49:     private $value;
50:     
51:     /**
52:      * この cookie が持つ属性をあらわします.
53:      * 
54:      * @var CookieOptions
55:      */
56:     private $options;
57:     
58:     /**
59:      * 指定されたキーおよび値の cookie を持つ CookieItem オブジェクトを構築します.
60:      * 
61:      * @param string $name           cookie のキー
62:      * @param string $value          cookie の値
63:      * @param CookieOptions $options その cookie が持つ属性
64:      */
65:     public function __construct($name, $value, CookieOptions $options = null)
66:     {
67:         $this->name    = $name;
68:         $this->value   = $value;
69:         $this->options = $options;
70:     }
71:     
72:     /**
73:      * Set-Cookie ヘッダーの値 ("Set-Cookie: " に続く文字列部分) を書式化します.
74:      * 
75:      * @return string Set-Cookie ヘッダーの値部分
76:      */
77:     public function format()
78:     {
79:         $data = $this->formatData();
80:         return ($this->options === null) ? $data : implode("; ", Arrays::concat($data, $this->options->formatOptions()));
81:     }
82:     
83:     /**
84:      * 出力の先頭の "key=value" 部分を書式化します.
85:      * 
86:      * @return string "key=value" 形式の文字列
87:      */
88:     private function formatData()
89:     {
90:         $name  = rawurlencode($this->name);
91:         $value = rawurlencode($this->value);
92:         return "{$name}={$value}";
93:     }
94: }
95: 
PEACH2 API documentation generated by ApiGen