forked from NEKOGET/FuelPHP_docs_jp
-
Notifications
You must be signed in to change notification settings - Fork 0
/
classes.html
124 lines (96 loc) · 5.08 KB
/
classes.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
<!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 = './../';
</script>
<script src="./../assets/js/combined.js"></script>
<title>クラス - 概要 - 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>クラス</h2>
<h3 id="what_is_a_class">クラスとは?</h3>
<p>クラスは通常の PHP クラスです。何かを継承したり、ネーミング以外の制約に従う必要はありません。制約は、Fuel のその他のすべてのクラスと同じものです。</p>
<pre class="php"><code>class Session</code></pre>
<p>これは app/classes/session.php をロードします。</p>
<h3 id="loading_classes">クラスの読み込み</h3>
<p>他のフレームワークとは違って、クラスは手動でロードする必要はありません。コード (コントローラやモデルなど) 内で参照すると自動的にロードされます。</p>
<h3 id="classes_subdirectories">サブディレクトリ内のクラス</h3>
<p><a href="controllers/base.html">Controllers</a> と同様に、クラスは最初の文字のみ大文字でその他は小文字にしなければなりません。一方アンダースコアはサブディレクトリにクラスを置きます。</p>
<pre class="php"><code>Class Session_Driver</code></pre>
<p>これは app/classes/session/driver.php をロードします。</p>
<h3 id="classes_namespaces">クラスと名前空間</h3>
<p>
ロードする PHP ファイルを決める際に、FuelPHP のオートローダは名前空間とアンダースコアのクラス名をまったく同じに扱います。
これは、サブディレクトリ内のクラスで、自由に名前空間とアンダースコアをミックするして使うことができるということです。
</p>
<p>たとえば、ファイル app/classes/core/system/messages.php の中のクラスの場合、このファイル内のクラスは、次のように定義できます:</p>
<pre class="php"><code>// グローバル名前空間、アンダースコアだけのクラス名
class Core_System_Messages {}
// 名前空間とアンダースコアのコンビネーション
namespace Core;
class System_Messages {}
// 名前空間だけ
namespace Core\System;
class Messages {}
</code></pre>
<p class="note">
最初の方法は最も一般的に使用され、理解するのも最も簡単です。名前空間つきバージョンは、定義されたクラスを使用する Use ステートメントを組み合わせて使うと
特に便利です。
</p>
<article>
<h2 id="init_method">クラスの初期化</h2>
<p>クラスがロードされたときに、Fuel のオートローダに何らかのタスクを自動的に実行させることができます。
これは <code>__construct()</code> がクラスのインスタンスにすることと同様です。
これはクラスに public の <code>_init()</code> メソッドを追加することで可能になります。</p>
<pre class="php"><code>class Example {
public static function _init()
{
// これはクラスをロードしているときに呼び出されます。
}
}</code></pre>
<p class="note">読み込まれたクラスが自身に <code>_init()</code> メソッドがあり、親クラスがそれと一緒にロードされる必要がある場合、
親クラスの init メソッドは
<code>parent::_init();</code> を使用しない限り呼び出されません。</p>
</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/general/classes.html">原文コミット履歴</a> | <a href="https://github.com/NEKOGET/FuelPHP_docs_jp/commits/1.8/develop_japanese/general/classes.html">翻訳コミット履歴</a> | <a href="https://github.com/NEKOGET/FuelPHP_docs_jp/blob/1.8/develop_japanese/general/classes.html">GitHubで修正</a> ]
</p>
</footer>
</div>
</body>
</html>