Skip to content

Commit

Permalink
[ja] update session.rst
Browse files Browse the repository at this point in the history
  • Loading branch information
okinaka committed Nov 23, 2015
1 parent c531f4a commit e366c4b
Showing 1 changed file with 50 additions and 143 deletions.
193 changes: 50 additions & 143 deletions ja/core-libraries/components/sessions.rst
Original file line number Diff line number Diff line change
Expand Up @@ -3,167 +3,102 @@

.. php:class:: SessionComponent(ComponentCollection $collection, array $settings = array())
..
The CakePHP SessionComponent provides a way to persist client data
between page requests. It acts as a wrapper for the ``$_SESSION`` as
well as providing convenience methods for several ``$_SESSION``
related functions.
CakePHP のセッション (Session) コンポーネントは、複数のページにわたってクライアントのデータを継続して保持する方法を提供します。このコンポーネントは $_SESSION 変数に関連したいくつかの便利なメソッドを持つラッパのように振舞います。

..
Sessions can be configured in a number of ways in CakePHP. For more
information, you should see the :doc:`Session configuration </development/sessions>`
documentation.
CakePHP の SessionComponent は、複数のページにわたってクライアントのデータを継続して
保持する方法を提供します。このコンポーネントは ``$_SESSION`` 変数に関連した
いくつかの便利なメソッドを持つラッパのように振舞います。

CakePHP ではセッションの複数の方法で設定を行えます。
詳しくは :doc:`セッションの設定 </development/sessions>` を参照してください。

..
Interacting with Session data
セッションデータを伝達する
==========================

..
The Session component is used to interact with session information.
It includes basic CRUD functions as well as features for creating
feedback messages to users.
セッションコンポーネントはセッション情報を伝えあうために使われます。
SessionComponent はセッション情報を伝えあうために使われます。
ユーザへ出力するメッセージの作成はもちろんのこと、基本的な CRUD 機能が含まれます。

..
It should be noted that Array structures can be created in the
Session by using :term:`dot notation`. So ``User.username`` would
reference the following::
覚えておきたいことは、 :term:`ドット記法` により配列構造で作成可能ということです。
そのため ``User.username`` は、次のような値が参照されます。::
そのため ``User.username`` は、次のような値が参照されます。 ::

array('User' => array(
'username' => '[email protected]'
));

..
Dots are used to indicate nested arrays. This notation is used for
all Session component methods wherever a name/key is used.
ドット (.) は、多次元配列のために使われます。
この表記は、セッションコンポーネント内で使用されるどの name/key においても使われます。
この表記は、SessionComponent 内で使用されるどの name/key においても使われます。

.. php:method:: write($name, $value)
..
Write to the Session puts $value into $name. $name can be a dot
separated array. For example::
$name のなかに、$value をセッションとして格納します。
$name には、ドット記法の配列を使用できます。
たとえば::

$this->Session->write('Person.eyeColor', 'Green');

..
This writes the value 'Green' to the session under Person =>
eyeColor.
これは 'Green' という値を、 Person => eyeColor というキーに書き込んでいます。

.. php:method:: read($name)
..
Returns the value at $name in the Session. If $name is null the
entire session will be returned. E.g::
セッション内の $name というキーの値を返します。
もし $name が null の場合、セッション全体の値を返します。::

$green = $this->Session->read('Person.eyeColor');

..
Retrieve the value Green from the session. Reading data that does not exist
will return null.
セッションから 'Green' という値を取り出します。キー存在しない場合は null が返されます。

セッションから 'Green' という値を取り出します。
キー存在しない場合は null が返されます。
.. php:method:: consume($name)
.. php:method:: check($name)
セッションから値の読み込みと削除をします。一回の操作で、読み込みと削除を組み合わせたい
ときに便利です。

..
Used to check if a Session variable has been set. Returns true on
existence and false on non-existence.
.. php:method:: check($name)
セッションの値がセットされているかチェックするために使用します。
存在する場合は true を、存在しない場合は false を返します。

.. php:method:: delete($name)
..
Clear the session data at $name. E.g::
$name キーのセッションをクリアします。
例::

$this->Session->delete('Person.eyeColor');

..
Our session data no longer has the value 'Green', or the index
eyeColor set. However, Person is still in the Session. To delete
the entire Person information from the session use::
セッションには 'Green' という値も eyeColor というキーも、もう存在しません。
しかし、 Person というキーはまだあります。
Person 全体を削除するためには次のようにします。::
Person 全体を削除するためには次のようにします。 ::

$this->Session->delete('Person');

.. php:method:: destroy()
..
The ``destroy`` method will delete the session cookie and all
session data stored in the temporary file system. It will then
destroy the PHP session and then create a fresh session::
``destroy`` メソッドは、セッションクッキーと temporary file system 内のすべてのセッションデータを削除します。
PHPセッションを無効にし、新鮮なセッションを作成します。::
``destroy`` メソッドは、セッションクッキーと temporary file system 内の
すべてのセッションデータを削除します。PHP セッションを無効にし、新鮮なセッションを
作成します。 ::

$this->Session->destroy();


..
Creating notification messages
.. _creating-notification-messages:

通知メッセージの作成
====================

.. php:method:: setFlash(string $message, string $element = 'default', array $params = array(), string $key = 'flash')
:rtype: void

..
Often in web applications, you will need to display a one-time notification
message to the user after processing a form or acknowledging data.
In CakePHP, these are referred to as "flash messages". You can set flash
message with the SessionComponent and display them with the
:php:meth:`SessionHelper::flash()`. To set a message, use ``setFlash``::
.. deprecated:: 2.7.0
フラッシュメッセージの作成には :doc:`/core-libraries/components/flash`
を使用すべきです。 setFlash() メソッドは、3.0.0 で削除されます。

Webアプリケーションではしばしば、フォームの処理やデータの受け取り時に、一回限りの通知をユーザに対して表示したいときがあります。
このような通知を CakePHP では、 "flash message" と呼んでいます。
セッションコンポーネントによって flash message をセットし、 :php:meth:`SessionHelper::flash()` を使用し表示します。
メッセージのセットは、 ``setFlash`` を使用します。::
ウェブアプリケーションではしばしば、フォームの処理やデータの受け取り時に、一回限りの通知を
ユーザに対して表示したいときがあります。このような通知を CakePHP では、
「フラッシュメッセージ」と呼んでいます。SessionComponent によって
フラッシュメッセージをセットし、 :php:meth:`SessionHelper::flash()` を使用し表示します。
メッセージのセットは、 ``setFlash`` を使用します。 ::

// controller にて
$this->Session->setFlash('Your stuff has been saved.');

..
This will create a one-time message that can be displayed to the user,
using the SessionHelper::
ユーザに表示する一回限りのメッセージが作成されます。
セッションヘルパーを使用します。::
セッションヘルパーを使用します。 ::

// view にて
echo $this->Session->flash();
Expand All @@ -173,88 +108,60 @@ CakePHP ではセッションの複数の方法で設定を行えます。
保存しました
</div>

..
You can use the additional parameters of ``setFlash()`` to create
different kinds of flash messages. For example, error and positive
notifications may look differently. CakePHP gives you a way to do that.
Using the ``$key`` parameter you can store multiple messages, which can be
output separately::
ほかの種類の flash message を表示するために ``setFlash()`` に追加のパラメータを設定できます。
たとえば、エラー・成功・注意に別の見た目にするかもしれません。
ほかの種類の フラッシュメッセージ を表示するために ``setFlash()`` に追加のパラメータを
設定できます。たとえば、エラー・成功・注意に別の見た目にするかもしれません。
CakePHP は、そのような場合のやり方を用意しています。
``$key`` パラメータを使い、多数のメッセージを保存し、別々に出力することができます。::
``$key`` パラメータを使い、多数のメッセージを保存し、別々に出力することができます。 ::

// bad message をセット
$this->Session->setFlash('Something bad.', 'default', array(), 'bad');

// good message をセット
$this->Session->setFlash('Something good.', 'default', array(), 'good');

..
In the view, these messages can be output and styled differently::
ビュー内にて、次のように別々の見た目で出力できます。::
ビュー内にて、次のように別々の見た目で出力できます。 ::

// viewにて
echo $this->Session->flash('good');
echo $this->Session->flash('bad');

..
The ``$element`` parameter allows you to control which element
(located in ``/app/View/Elements``) should be used to render the
message in. In the element the message is available as ``$message``.
First we set the flash in our controller::
``$element`` パラメータは、 ``/app/View/Elements`` 内のどのエレメントを使用しメッセージを表示するかに使います。
エレメント内では ``$message`` によってメッセージを利用できます。
まずコントローラ内でメッセージをセットします。::
``$element`` パラメータは、 ``/app/View/Elements`` 内のどのエレメントを使用し
メッセージを表示するかに使います。エレメント内では ``$message`` によってメッセージを
利用できます。まずコントローラ内でメッセージをセットします。 ::

$this->Session->setFlash('Something custom!', 'flash_custom');

..
Then we create the file ``app/View/Elements/flash_custom.ctp`` and build our
custom flash element::
エレメントファイル ``app/View/Elements/flash_custom.ctp`` を作成し、特別な表示がされるようにします::
エレメントファイル ``app/View/Elements/flash_custom.ctp`` を作成し、特別な表示が
されるようにします::

<div id="myCustomFlash"><?php echo h($message); ?></div>

..
``$params`` allows you to pass additional view variables to the
rendered layout. Parameters can be passed affecting the rendered div, for
example adding "class" in the $params array will apply a class to the
``div`` output using ``$this->Session->flash()`` in your layout or view.::
``$params`` は追加の変数をビューに渡します。パラメータは描画した div に影響を及ぼします。
たとえば、配列 $params に "class" を追加し、レイアウトやビュー内で
``$this->Session->flash()`` を使用し ``div`` に class を適用します。 ::

``$params`` は追加の変数をビューに渡します。
パラメータは描画した div に影響を及ぼします。
たとえば、配列 $params に "class" を追加し、レイアウトやビュー内で ``$this->Session->flash()`` を使用し ``div`` に class を適用します。::
$this->Session->setFlash(
'Example message text',
'default',
array('class' => 'example_class')
);

$this->Session->setFlash('Example message text', 'default', array('class' => 'example_class'));

..
The output from using ``$this->Session->flash()`` with the above example
would be::
上述の例で ``$this->Session->flash()`` を使用した出力は次のようになります。::
上記の例で ``$this->Session->flash()`` を使用した出力は次のようになります。 ::

<div id="flashMessage" class="example_class">Example message text</div>

..
To use an element from a plugin just specify the plugin in the
``$params``::
``$params`` 内でプラグインの使用を明示し、プラグイン内のエレメントを使用するには次のようにします。::
``$params`` 内でプラグインの使用を明示し、プラグイン内のエレメントを使用するには
次のようにします。::

// /app/Plugin/Comment/View/Elements/flash_no_spam.ctp が使用されます
$this->Session->setFlash('Message!', 'flash_no_spam', array('plugin' => 'Comment'));

.. note::
..
By default CakePHP does not HTML escape flash messages. If you are using
any request or user data in your flash messages you should escape it
with :php:func:`h` when formatting your messages.
CakePHPは、デフォルトではフラッシュメッセージをHTMLエスケープしません。
CakePHP は、デフォルトではフラッシュメッセージを HTML エスケープしません。
もしリクエストやユーザーデータをフラッシュメッセージに含める場合は、
メッセージを整形するときにそれらを :php:func:`h` でエスケープするべきです。


.. meta::
:title lang=ja: セッション
:keywords lang=ja: php 配列,dailyplanet com,設定ドキュメント,ドット記法,フィードバックメッセージ,データ読み込み,セッションデータ,ページリクエスト,クラーク・ケント,ドット,存在,セッション,便利,cakephp

0 comments on commit e366c4b

Please sign in to comment.