forked from NEKOGET/FuelPHP_docs_jp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.html
417 lines (381 loc) · 17.2 KB
/
config.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
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
<!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 = "Config::";
</script>
<script src="./../assets/js/combined.js"></script>
<title>Config - クラス - 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>Config クラス</h2>
<p>Config クラスは、Fuel の設定オプションの殆どすべてを処理することが出来ます。設定ファイルの読み込み、値の取得、設定を行う場合、本クラスが常用されます。</p>
<h3 id="config_groups">設定ファイルの種類</h3>
設定を保存するのに、さまざまなファイルレイアウトを使用できます。レイアウトの種類は、ファイル拡張子で決められます。
<ul>
<li>
PHP 。デフォルト。PHP ファイルは配列構造を返します。
<pre class="php"><code> return array('key' => 'value');</code></pre>
</li>
<li>
INI 。ini ファイルのレイアウトについては、<a href="http://ja.wikipedia.org/wiki/INI%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB">このページ</a> をごらんください。
<pre class="ini"><code> [group]
key=value</code></pre>
</li>
<li>
YAML 。yaml ファイルのレイアウトについては、<a href="http://ja.wikipedia.org/wiki/YAML">このページ</a> をごらんください。
<pre class="yaml"><code> group:
key: value</code></pre>
</li>
<li>
JSON 。json ファイルのレイアウトについては、<a href="http://ja.wikipedia.org/wiki/JSON">このページ</a> をごらんください。
<pre class="javascript"><code> {
"group" :
{
"key": "value"
}
}</code></pre>
</li>
<li>
MEMCACHED 。 Memcached もしくは Memcachedb のストアから設定を格納または取得します。
<br /><br />
memcached クラスはストアに接続するための設定に <code>app/config/config.php</code> 設定ファイルの
<strong>config.memcached</strong> セクションをを使用します。
<br /><br />
</li>
<li>
DB 。次のようなテーブル構造を用います。
<pre class="php"><code> CREATE TABLE IF NOT EXISTS `config` (
`identifier` char(100) NOT NULL,
`config` longtext NOT NULL,
`hash` char(13) NOT NULL,
PRIMARY KEY (`identifier`)
)</code></pre>
デフォルトのデータベースで、デフォルトではテーブル名 'config' を使用します。 あなたは
<strong>config.database</strong> と <strong>config.table_name</strong> キーを使用し <code>app/config/config.php</code>
でデータベースとテーブル名を定義することでこれを上書きすることができます。
</li>
</ul>
<p>ファイルの種類を指定しなかった場合は、Config::load() はデフォルトの 'php' を使用します。</p>
<p class="note">
より複雑な設定値を持っている場合は、それらをクロージャとして定義することを選ぶことができます。 デフォルトでは、設定キーを <kbd>get()</kbd> した時にクロージャを返し、
実行時に評価され、関数として、または <kbd>Fuel::value()</kbd> にくるむ、いずれかの方法で、それを呼び出しクロージャの結果を取得します。
この振る舞いを必要とせず、しかし (例えば、クロージャが常に同じ結果を返すため) 結果をキャッシュし再利用する場合、
クロージャを定義し設定ファイル内でクロージャを <kbd>Fuel::value()</kbd> にくるむ必要があります。
<br /><br />
<kbd>set()</kbd> メソッドにクロージャを渡したい場合も同様です。 もしクロージャの結果ではなく、クロージャ自体を格納する場合には、
<kbd>set()</kbd> メソッドに渡すときにクロージャを <kbd>Fuel::value()</kbd> にくるむ必要があります。
<br /><br />
"PHP" タイプの設定ファイル内でのみクロージャが定義できることに注意してください。
</p>
<h3 id="config_groups">Config グループ</h3>
<p>config グループは、設定オプションの範囲を決めるための簡単な方法です。名前の衝突を、グループによって回避します。全ての設定ファイル (db.php や routes.php 、その他) は、メインの <kbd>config.php</kbd> を除いて、その設定ファイル名と同名称のグループとして読み込まれます。</p>
<h3 id="config_methods">メソッド</h3>
<article>
<h4 class="method" id="method_get">get($item, $default = null)</h4>
<p><strong>get</strong> メソッドは、取得したい設定項目を返します。項目が存在しない場合は <kbd>$default</kbd> に記した値を返します。取得した項目がグループであれば、グループ全体を返します。</p>
<table class="method">
<tbody>
<tr>
<th class="legend">静的</th>
<td>はい</td>
</tr>
<tr>
<th>パラメータ</th>
<td>
<table class="parameters">
<tr>
<th>パラメータ</th>
<th>デフォルト</th>
<th class="description">説明</th>
</tr>
<tr>
<th><kbd>$item</kbd></th>
<td><i>必須</i></td>
<td>取得したい項目名。ドット (<kbd>.</kbd>) で階層を区切ることによって、グループと多次元配列にアクセスすることが出来ます。</td>
</tr>
<tr>
<th><kbd>$default</kbd></th>
<td><kbd>null</kbd></td>
<td>(オプション) <kbd>$item</kbd> が見つからない時は、$default が返ります。</td>
</tr>
</table>
</td>
</tr>
<tr>
<th>返り値</th>
<td><kbd>$item</kbd> か、もし <kbd>$item</kbd> が存在しない時は <kbd>$default</kbd>。 <kbd>$item</kbd> がグループの時は、グループ全体を含む配列。</td>
</tr>
<tr>
<th>例</th>
<td>
<pre class="php"><code>// config.php に設定されている現在の言語を出力します。
echo Config::get('language');
// 存在しない項目のデフォルトとして null を返す
if (Config::get('items_to_display') === null)
{
throw new Exception('You must set the number of items to display in config.php');
}
// 存在しない項目の場合のデフォルトを下記のように設定出来ます。
$items_to_display = Config::get('items_to_display', 10);
// config/db.php の内容をもつ db グループ全体を読み込みます。
$db_configs = Config::get('db');
// どの db 接続が db config の 'active' にセットされているのかを取得します。
$active_db = Config::get('db.active');
// 下記のように、階層を奥深く探索することが出来ます。
// この例では db group の 'dev' のホスト名を取得出来ます。
$dev_host = Config::get('db.dev.connection.hostname');</code></pre>
</td>
</tr>
</tbody>
</table>
</article>
<article>
<h4 class="method" id="method_set">set($item, $value)</h4>
<p><strong>set</strong> メソッドは指定した <kbd>$item</kbd> に <kbd>$value</kbd> をセットします。 <kbd>$item</kbd> は、<kbd>get()</kbd> メソッドと同様にドット (<kbd>.</kbd>) で区切ることが出来ます。</p>
<table class="method">
<tbody>
<tr>
<th class="legend">静的</th>
<td>はい</td>
</tr>
<tr>
<th>パラメータ</th>
<td>
<table class="parameters">
<tr>
<th>パラメータ</th>
<th>デフォルト</th>
<th class="description">説明</th>
</tr>
<tr>
<th><kbd>$item</kbd></th>
<td><i>必須</i></td>
<td>セットしたい項目名。ドット (<kbd>.</kbd>) で階層を区切ることによって、グループと多次元配列にアクセスすることが出来ます。もし <kbd>$item</kbd> が存在しない時は、それを生成します。</td>
</tr>
<tr>
<th><kbd>$value</kbd></th>
<td><i>必須</i></td>
<td><kbd>$item</kbd> にセットする値。</td>
</tr>
</table>
</td>
</tr>
<tr>
<th>返り値</th>
<td>本メソッドは常に <kbd>true</kbd> を返します。</td>
</tr>
<tr>
<th>例</th>
<td>
<pre class="php"><code>// 現在の言語をセットします。
Config::set('language', 'en');
// アクティブな db 接続名をセットします。
Config::set('db.active', 'test');
// 今後利用したい独自の値をセットします。
Config::set('items_to_display', 5);
// ドットを使えばカスタムグループと項目が作れます。
Config::set('blog.items_to_display', 5);</code></pre>
</td>
</tr>
</tbody>
</table>
</article>
<article>
<h4 class="method" id="method_delete">delete($item)</h4>
<p><strong>delete</strong> メソッドは指定した <kbd>$item</kbd> を削除します。 <kbd>$item</kbd> は、<kbd>set()</kbd> メソッドや <kbd>get()</kbd> メソッドと同様、ドットで区切ることが出来ます。</p>
<table class="method">
<tbody>
<tr>
<th class="legend">静的</th>
<td>はい</td>
</tr>
<tr>
<th>パラメータ</th>
<td>
<table class="parameters">
<tr>
<th>パラメータ</th>
<th>デフォルト</th>
<th class="description">説明</th>
</tr>
<tr>
<th><kbd>$item</kbd></th>
<td><i>必須</i></td>
<td>削除したい項目名。</td>
</tr>
</table>
</td>
</tr>
<tr>
<th>返り値</th>
<td>void</td>
</tr>
<tr>
<th>例</th>
<td>
<pre class="php"><code>// ドット区切りで設定項目を削除します。
Config::delete('blog.items_to_display');</code></pre>
</td>
</tr>
</tbody>
</table>
</article>
<article>
<h4 class="method" id="method_load">load($file, $group = null, $reload = false, $overwrite = false)</h4>
<p><strong>load</strong> メソッドは設定ファイルをシステムに読み込みます。要求されたファイルについて、 config ディレクトリを検索します。オプションとして、名前の衝突を回避するために設定ファイルをグループ化できます。</p>
<table class="method">
<tbody>
<tr>
<th class="legend">静的</th>
<td>はい</td>
</tr>
<tr>
<th>パラメータ</th>
<td>
<table class="parameters">
<tr>
<th>パラメータ</th>
<th>デフォルト</th>
<th class="description">説明</th>
</tr>
<tr>
<th><kbd>$file</kbd></th>
<td><i>必須</i></td>
<td>設定ファイルのパスは、 config ディレクトリに対する相対パスです。ファイル拡張子を含まないでください (拡張子として ".php" であることが決め打ちされています) 。読み込まれたモジュールの設定ファイルを強制的に読み込むために、モジュール名のプレフィックスを付けることが出来ます。</td>
</tr>
<tr>
<th><kbd>$group</kbd></th>
<td><kbd>null</kbd></td>
<td>(オプション) 利用するグループ名。 <kbd>true</kbd> の場合、グループ名は <kbd>$file</kbd> で作られる名前と同じになります。 <kbd>null</kbd> の場合、読み込まれる設定はルートの設定とマージされます。</td>
</tr>
<tr>
<th><kbd>$reload</kbd></th>
<td><kbd>false</kbd></td>
<td>(オプション) <kbd>true</kbd> の場合、リクエストされた設定のリロードが強制され、読み込まれる設定ファイルについてキャッシュされた設定項目は消されます。</td>
</tr>
<tr>
<th><kbd>$overwrite</kbd></th>
<td><kbd>false</kbd></td>
<td>(オプション) <kbd>true</kbd> の場合、読み込まれる設定項目と既に読み込まれている項目とのマージが、非再帰的になります。つまり、項目が多次元配列の場合に、その中の配列値はマージではなく上書きされます。</td>
</tr>
</table>
</td>
</tr>
<tr>
<th>返り値</th>
<td><kbd>配列</kbd> には、読み込まれた設定が入っています。もし設定ファイルが既に読み込まれている場合は、 <kbd>false</kbd> が返ります。</td>
</tr>
<tr>
<th>例</th>
<td>
<pre class="php"><code>// ルートの設定と "custom" 設定ファイルがマージされる。
Config::load('custom');
// "custom" 設定ファイルをグループ名 "custom" で読み込む。
Config::load('custom', true);
// "custom.ini" 設定ファイルをグループ名 "custom" で読み込む。
Config::load('custom.ini', true);
// "custom" 設定ファイルをグループ名 "foo" で読み込む。
Config::load('custom', 'foo');
// モジュール名 "foo" の "custom" 設定ファイルをグループ名 "bar" で読み込む。
Config::load('foo::custom', 'bar');</code></pre>
</td>
</tr>
</tbody>
</table>
</article>
<article>
<h4 class="method" id="method_save">save($file, $config)</h4>
<p><strong>save</strong> メソッドは、システム内に設定ファイルを保存します。ファイルが存在しない時は、設定ファイルが APPPATH の config ディレクトリに作成されます。</p>
<table class="method">
<tbody>
<tr>
<th class="legend">静的</th>
<td>はい</td>
</tr>
<tr>
<th>パラメータ</th>
<td>
<table class="parameters">
<tr>
<th>パラメータ</th>
<th>デフォルト</th>
<th class="description">説明</th>
</tr>
<tr>
<th><kbd>$file</kbd></th>
<td><i>必須</i></td>
<td>設定ファイルのパスは、config ディレクトリに対する相対パスです。ファイル拡張子を含まないでください (拡張子として ".php" であることが決め打ちされています)。読み込まれたパッケージやモジュールの設定ファイルを読み込むために、名前空間のプレフィックスを付けることが出来ます。</td>
</tr>
<tr>
<th><kbd>$config</kbd></th>
<td><i>必須</i></td>
<td>文字列であれば、保存されるべきグループ名となります。配列であれば、保存されるべき設定を含むと見なされます。</td>
</tr>
</table>
</td>
</tr>
<tr>
<th>返り値</th>
<td><kbd>true</kbd> なら保存されています。 <kbd>false</kbd> ならエラーが起こっています。</td>
</tr>
<tr>
<th>例</th>
<td>
<pre class="php"><code>// グループ名 "foo" として "custom" 設定ファイルを読み込む。
Config::load('custom', 'foo');
// 幾つかの設定項目を更新
Config::set('foo.key', $value);
// 更新された設定グループ 'foo' を保存 (注意: これはそのグループのすべてを保存することに注意!)
Config::save('custom', 'foo');
// 更新された設定グループ 'bar' をモジュール 'foo' の設定ファイル 'custom' に保存
Config::save('foo::custom', 'bar');
// 更新された設定グループ 'bar' を識別子 'custom' を使い memcached に保存
Config::save('custom.memcached', 'bar');</code></pre>
</td>
</tr>
</tbody>
</table>
</article>
</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/config.html">原文コミット履歴</a> | <a href="https://github.com/NEKOGET/FuelPHP_docs_jp/commits/1.8/develop_japanese/classes/config.html">翻訳コミット履歴</a> | <a href="https://github.com/NEKOGET/FuelPHP_docs_jp/blob/1.8/develop_japanese/classes/config.html">GitHubで修正</a> ]
</p>
</footer>
</div>
</body>
</html>