Skip to content

Commit 00e0d4e

Browse files
author
okonomi
committed
Merge pull request cakephp#588 from yuxxxx/ja-component-cookie
Translate 'CookieComponent' in Japanese
2 parents 87d39df + 685eb5b commit 00e0d4e

File tree

1 file changed

+158
-0
lines changed

1 file changed

+158
-0
lines changed
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
Cookie
2+
######
3+
4+
.. php:class:: CookieComponent(ComponentCollection $collection, array $settings = array())
5+
6+
Cookie コンポーネントは PHP に組み込まれている ``setcookie`` メソッドに関連するラッパーです。
7+
コントローラーで Cookie を使ったコーディングをするのにとても便利な糖衣構文も多数含んでいます。
8+
Cookie コンポーネントを使おうとする前に、コントローラーの $components の配列に 'Cookie' を必ず加えてください。
9+
10+
11+
コントローラーのセットアップ
12+
================
13+
14+
Cookie の発行や操作の設定をすることができる値を以下に示します。これらの値によって
15+
Cookie コンポーネントがどのように動くかは、コントローラーの beforeFilter() メソッドでも特別に設定できます。
16+
17+
+-----------------+--------------+------------------------------------------------------+
18+
| Cookie の変数 | 規定値 | 内容 |
19+
+=================+==============+======================================================+
20+
| string $name |'CakeCookie' | Cookie の名前です。 |
21+
+-----------------+--------------+------------------------------------------------------+
22+
| string $key | null | この文字列は Cookie の値を暗号化するために使われます。 |
23+
| | | ランダムで特定されにくい文字列を使うべきです。 |
24+
| | | |
25+
| | | Rijndael 暗号化を使うときは32バイトより長い値にしなければなりません。|
26+
+-----------------+--------------+------------------------------------------------------+
27+
| string $domain | '' | Cookie を読むことができるドメインの名前を設定します。たとえば、 |
28+
| | | '.yourdomain.com' を使うと、あなたのサブドメイン全体 |
29+
| | | からのアクセスを許可します。 |
30+
+-----------------+--------------+------------------------------------------------------+
31+
| int または string | '5 Days' | Cookie が無効になる時間を設定します。整数ならば秒として解釈され、 |
32+
| $time | | 0であればセッション Cookie として評価されます。すなわち、ブラウザを|
33+
| | | 終了したときに破棄されます。文字列を設定したときは、 PHP の |
34+
| | | strtotime() 関数を使って解釈されます。 write() メソッドの中で |
35+
| | | 直接設定することもできます。 |
36+
+-----------------+--------------+------------------------------------------------------+
37+
| string $path | '/' | Cookie が適用されるサーバーのパスを設定します。 $path に '/foo/' |
38+
| | | を設定した場合、この Cookie は、あなたのドメインの /foo/ と、 |
39+
| | | それ以下にあるすべてのサブディレクトリ( /foo/bar など) で有効に |
40+
| | | なります。既定ではドメイン全体で有効です。 write() メソッドで |
41+
| | | 直接指定することもできます。 |
42+
+-----------------+--------------+------------------------------------------------------+
43+
| boolean $secure | false | セキュアな HTTPS 接続を通してのみ Cookie を伝送するかを設定 |
44+
| | | します。 true に設定すると、セキュアな接続が確立しているときにのみ |
45+
| | | Cookie を発行するようになります。 write() メソッドで直接指定する |
46+
| | | こともできます。 |
47+
+-----------------+--------------+------------------------------------------------------+
48+
| boolean | false | true に設定すると HTTP のみで有効な Cookie を作成します。これらの|
49+
| $httpOnly | | Cookie は Javascript からアクセスすることはできません。 |
50+
+-----------------+--------------+------------------------------------------------------+
51+
52+
以下のサンプルコードは、 Cookie コンポーネントをコントローラーにインクルードする方法と、
53+
セキュアな接続でのみ、 'example.com' というドメインの ‘/bakers/preferences/’
54+
というパス以下で、1時間だけ有効な 'baker\_id' という名前の HTTP のみで有効な
55+
Cookie の初期設定をするための例です。::
56+
57+
public $components = array('Cookie');
58+
public function beforeFilter() {
59+
parent::beforeFilter();
60+
$this->Cookie->name = 'baker_id';
61+
$this->Cookie->time = 3600; // または '1 hour'
62+
$this->Cookie->path = '/bakers/preferences/';
63+
$this->Cookie->domain = 'example.com';
64+
$this->Cookie->secure = true; // セキュアな HTTPS で接続している時のみ発行されます
65+
$this->Cookie->key = 'qSI232qs*&sXOw!adre@34SAv!@*(XSL#$%)asGb$@11~_+!@#HKis~#^';
66+
$this->Cookie->httpOnly = true;
67+
}
68+
69+
それでは、その他の Cookie コンポーネントのメソッドの使い方を見ていきましょう。
70+
71+
コンポーネントの使い方
72+
================
73+
74+
CookieComponent は Cookie を使った動作をするためにいくつかのメソッドを提供します。
75+
76+
.. php:method:: write(mixed $key, mixed $value = null, boolean $encrypt = true, mixed $expires = null)
77+
78+
write() は Cookie コンポーネントの中核をなすメソッドです。 $key は必要な Cookie の値につける名前を、
79+
$value は保存しておきたい情報を設定します。::
80+
81+
$this->Cookie->write('name', 'Larry');
82+
83+
$key にドット記法を使うことで値をグルーピングすることもできます。::
84+
85+
$this->Cookie->write('User.name', 'Larry');
86+
$this->Cookie->write('User.role', 'Lead');
87+
88+
一度に2つ以上の Cookie を書き込みたい場合は、配列を渡すことができます。::
89+
90+
$this->Cookie->write('User',
91+
array('name' => 'Larry', 'role' => 'Lead')
92+
);
93+
94+
すべての Cookie の値は、既定では暗号化されます。平文で値を保存したい場合は、3つ目の引数に
95+
false を設定します。 Cookie の値は非常に単純な暗号化システムで暗号化されます。値の暗号化には、
96+
Configure クラスで予め定義された値である ``Security.salt`` と ``Security.cipherSeed``
97+
が使われます。よりよい暗号化をして Cookie をよりセキュアにするためには、 app/Config/core.php の
98+
``Security.cipherSeed`` を変更することをおすすめします。::
99+
100+
$this->Cookie->write('name', 'Larry', false);
101+
102+
最後の引数 $expires は無効になる秒数を数値で指定します。使いやすくするために、
103+
PHP の関数 strtotime() が解釈できる文字列を渡すこともできます。::
104+
105+
// いずれの Cookie も1時間で無効になります。
106+
$this->Cookie->write('first_name', 'Larry', false, 3600);
107+
$this->Cookie->write('last_name', 'Masters', false, '1 hour');
108+
109+
.. php:method:: read(mixed $key = null)
110+
111+
このメソッドは、 $key で指定した名前をつけた Cookie の値を得るために使われます。::
112+
113+
// “Larry” を出力します
114+
echo $this->Cookie->read('name');
115+
116+
// ドット記法も使うことができます
117+
echo $this->Cookie->read('User.name');
118+
119+
// ドット記法でグループにした値を配列として得る場合、例えば、
120+
$this->Cookie->read('User');
121+
122+
// であれば、array('name' => 'Larry', 'role' => 'Lead') のような出力結果となります
123+
124+
.. php:method:: check($key)
125+
126+
:param string $key: 確認のためのキー。
127+
128+
key/path が存在し、値が null でない事を確認するために使われます。
129+
130+
.. versionadded:: 2.3
131+
``CookieComponent::check()`` は 2.3 で追加されました。
132+
133+
.. php:method:: delete(mixed $key)
134+
135+
$key で指定した名前のCookieの値を削除します。ドット記法を使うことができます。::
136+
137+
// ひとつの値を削除
138+
$this->Cookie->delete('bar');
139+
140+
// barという値を削除しますが、foo以下のすべてを削除するわけではありません
141+
$this->Cookie->delete('foo.bar');
142+
143+
.. php:method:: destroy()
144+
145+
現在の Cookie を破棄します。
146+
147+
.. php:method:: type($type)
148+
149+
暗号化の方法を変更することができます。規定では 'cipher' 方式が使われます。しかし、
150+
より安全にするためには 'rijndael' 方式を使うべきです。
151+
152+
.. versionchanged:: 2.2
153+
'rijndael' タイプが追加されました。
154+
155+
156+
.. meta::
157+
:title lang=en: Cookie
158+
:keywords lang=en: array controller,php setcookie,cookie string,controller setup,string domain,default description,string name,session cookie,integers,variables,domain name,null

0 commit comments

Comments
 (0)