forked from NEKOGET/FuelPHP_docs_jp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
presenter.html
227 lines (207 loc) · 9.35 KB
/
presenter.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="stylesheet" href="./../assets/css/combined.css">
<link rel="shortcut icon" href="./../favicon.ico" />
<script src="http://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
var path = './../';
var class_prefix = "Presenter::";
</script>
<script src="./../assets/js/combined.js"></script>
<title>Presenter - クラス - FuelPHP ドキュメント</title>
</head>
<body>
<div id="container">
<header id="header">
<div class="table">
<h1>
<a href="http://fuelphp.com"><img height="37px" width="147px" src="./../assets/img/fuel.png" /></a>
<strong>Documentation</strong>
</h1>
<form id="google_search">
<p>
<span id="search_clear"> </span>
<input type="submit" name="search_submit" id="search_submit" value="検索" />
<input type="text" value="" id="search_input" name="search_input" />
</p>
</form>
</div>
<nav>
<div class="clear"></div>
</nav>
<a href="#" id="toc_handle">目次</a>
<div class="clear"></div>
</header>
<div id="cse">
<div id="cse_point"></div>
<div id="cse_content"></div>
</div>
<div id="main">
<h2>Presenter クラス</h2>
<p>
Presenter クラスは "ビュー" へのオブジェクトラッパーとして振る舞い、ビューに関連するすべてのロジックを抽象化し、
コントローラから分離するために使われます。<a href="../general/presenters.html">プレゼンタの使用法についての詳細をお読み下さい。</a>
コントローラのようにプレゼンタも <kbd>before()</kbd> と <kbd>after()</kbd> メソッドをサポートしますので、ビューの準備のための全般的なコードのために使えます。
</p>
<article>
<h4 class="method" id="method_forge">forge($presenter, $method = 'view', $auto_filter = null, $view = null)</h4>
<p><strong>forge</strong> メソッドは新しい Presenter オブジェクトを返します。</p>
<table class="method">
<tbody>
<tr>
<th>静的</th>
<td>はい</td>
</tr>
<tr>
<th>パラメータ</th>
<td>
<table class="parameters">
<tr>
<th>パラメータ</th>
<th>デフォルト</th>
<th class="description">説明</th>
</tr>
<tr>
<th><kbd>$presenter</kbd></th>
<td><em>必須</em></td>
<td class="description">プレゼンタの名前。デフォルトは <a href="./view.html#method_forge">View</a> 記法による関連するビュー。</td>
</tr>
<tr>
<th><kbd>$method</kbd></th>
<td><pre class="php"><code>'view'</code></pre></td>
<td class="description">ビューのレンダリングの準備をするためのプレゼンタのメソッド名。プレゼンタは、例えば、同じビューで違ったレイアウトを生成するために、複数の準備メソッドを持つことができます。</td>
</tr>
<tr>
<th><kbd>$auto_filter</kbd></th>
<td><pre class="php"><code>null</code></pre></td>
<td class="description">自動エンコーディングの設定をするために <em>true</em> または <em>false</em> に設定、メイン設定 (app/config/config.php) がデフォルト。</td>
</tr>
<tr>
<th><kbd>$view</kbd></th>
<td><pre class="php"><code>null</code></pre></td>
<td class="description">カスタムビュー名、プレゼンタ名から判別できないビューがロードされる場合に利用されます。</td>
</tr>
</table>
</td>
</tr>
<tr>
<th>返り値</th>
<td>新しい <em>Presenter</em> オブジェクト</td>
</tr>
<tr>
<th>例</th>
<td>
<pre class="php"><code>// APPPATH/classes/presenter/admin/index.php の中の Presenter_Admin_Index クラスを使い
// APPPATH/views/admin/index.php ビューファイルのための
// Presenter オブジェクトを作成する
$presenter = Presenter::Forge('admin/index');
// プレゼンタの custom() メソッドを使いビューを別にレンダリングする
$presenter = Presenter::Forge('admin/index', 'custom');
// 独自のビューを使う
$presenter = Presenter::Forge('admin/index', 'custom', null, 'admin/different/view');
// あるいは、独自のビューオブジェクトを使う
$view = View::forge('admin/different/view', array(
'menu' => $menu,
'articles' => $articles,
'footer_links' => $footer_links,
));
$presenter = Presenter::Forge('admin/index', 'custom', null, $view);</code></pre>
</td>
</tr>
</tbody>
</table>
</article>
<article>
<h4 class="method" id="method_get_view">get_view()</h4>
<p><strong>get_view</strong> メソッドはプレゼンタに関連するビューのインスタンスを返します。</p>
<table class="method">
<tbody>
<tr>
<th>静的</th>
<td>いいえ</td>
</tr>
<tr>
<th>パラメータ</th>
<td>
なし
</td>
</tr>
<tr>
<th>返り値</th>
<td>関連するビューオブジェクト</td>
</tr>
<tr>
<th>例</th>
<td>
<pre class="php"><code>// プレゼンタのインスタンスを作成する
$presenter = Presenter::Forge('admin/index');
// そして関連するビュー
$view = $presenter->get_view();</code></pre>
</td>
</tr>
</tbody>
</table>
</article>
<article>
<h4 class="method" id="method_view">view()</h4>
<p><strong>view</strong> メソッドはプレゼンタがレンダリングされる際に呼ばれるデフォルトのメソッドです。ビューのレンダリングの準備のためのロジックを含みます。</p>
<table class="method">
<tbody>
<tr>
<th>静的</th>
<td>いいえ</td>
</tr>
<tr>
<th>パラメータ</th>
<td>
なし
</td>
<tr>
<th>例</th>
<td>
<a href="../general/presenter.html">Presenter</a> の概要ページを参照してください。
</td>
</tr>
</tr>
</tbody>
</table>
<p class="note">
プレゼンタは、ビューを生成するための複数のロジックの集合が必要な場合に使う、複数の準備メソッドを持つことができます。
例えば、ヘッダとフッタなしのビューを生成する独自メソッド、あるいは、モバイルデバイスに最適化されたビューを生成するメソッドを持てます。
プレゼンタは、コントローラをジェネリックに保ち、プレゼンタにより生成される出力がどうあるべきかを知る必要をなくすこくとができます。
</p>
</article>
<h3 id="view">View オブジェクトの互換性</h3>
<p>
Presenter クラスは、コードの中で、ビュークラスと取り換え可能です。これは、もし、ビューで始めてその後、追加のビューの準備ロジックの必要性を感じ、
プレゼンタを使いたくなったら、
ビューを forge する代わりにプレゼンタを forge する以外、
コントローラのコードを変更する必要はないことを意味します。
</p>
<p>
そのため、プレゼンタは関連するビューの <kbd>set()</kbd>、<kbd>set_safe()</kbd>、<kbd>bind()</kbd>、<kbd>auto_filter()</kbd> そして
<kbd>render()</kbd> メソッドを見えるようにしています。
関連するビューオブジェクトのプロパティにアクセスしセットするマジックゲッターおよびセッターを持っています。
</p>
<p>
プレゼンタは、静的メソッド <kbd>set_global()</kbd> と <kbd>bind_global()</kbd> をサポートしません。もし、ビューにグローバル変数が必要な場合は、
View クラスでそれらをセットしなければなりません。プレゼンタにとっては、それは透過的です。
</p>
<p class="note">
もしあなたがプレゼンタを拡張し、プレゼンタオブジェクトが生成された後もビューインスタンスと交換可能にしたい場合、
プレゼンタはデータコンテナを持っていないことを知ってください。代わりに関連するビューオブジェクトを全てのデータを保存するために使っています。これは、
もしビューオブジェクトを新しい何かに交換すれば、あなたは、そこにセットされているすべての変数を失うことを意味します!
</p>
</div>
<footer>
<p>
© FuelPHP Development Team 2010-2016 - <a href="http://fuelphp.com">FuelPHP</a> is released under the MIT license.
[ <a href="https://github.com/fuel/docs/commits/1.8/develop/classes/presenter.html">原文コミット履歴</a> | <a href="https://github.com/NEKOGET/FuelPHP_docs_jp/commits/1.8/develop_japanese/classes/presenter.html">翻訳コミット履歴</a> | <a href="https://github.com/NEKOGET/FuelPHP_docs_jp/blob/1.8/develop_japanese/classes/presenter.html">GitHubで修正</a> ]
</p>
</footer>
</div>
</body>
</html>