forked from fuel/docs
/
packages.html
136 lines (114 loc) · 5.87 KB
/
packages.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
<!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>
<p>
モジュール・サードパーティライブラリ・設定などといった、あらゆる種類のものを含むことができる
パッケージは、コードの組織化・再利用・共有のための素晴らしい手段です。
app/classes ディレクトリを滅茶苦茶することなくに core を拡張することもできます。
以下で、パッケージとは何であり、何でないのかを明らかにして行きましょう。
</p>
<h4 id="they_are">パッケージは</h4>
<ul>
<li>コードをまとめ、</li>
<li>サードパーティライブラリを維持するための場所を提供し、</li>
<li>誰かが書いたコードを滅茶苦茶にすることなく拡張すること実現し、</li>
<li>core を目茶目茶にすることなく fuel の拡張をするための場所です。</li>
</ul>
<h4 id="they_are_not">一方で</h4>
<ul>
<li>パッケージは URL をマップすることはなく、</li>
<li>また、 HMVC リクエストからアプローチすることはできません。</li>
</ul>
<h3 id="installing">パッケージのインストール</h3>
<p>パッケージのインストールは、手動もしくは <a href="../packages/oil/package.html">oil</a> から行えます。手動でインストールするには、ダウンロードしたパッケージをパッケージディレクトリ (デフォルトでは fuel/packages) へ配置してください。</p>
<p class="note">パッケージを利用する際には、パッケージを <code>app/config/config.php</code> の <code>always_load</code> へ追加するか、
もしくは <a href="../classes/package.html#method_load">Package::load()</a> を呼び出す必要があります。</p>
<h3 id="creation">パッケージの作成</h3>
<p>あなたが何をしているのかを他の人が理解しやすくするための、ベストなパッケージ構造:</p>
<pre><code>/packages
/package
/bootstrap.php
/classes
/your.php
/classes.php
/here.php
/config
/packageconfig.php
/and_so_on
</code></pre>
<p>
すべてのパッケージはパッケージのベースに <em>bootstrap.php</em> を持つことが期待されます。
ブートストラップを使い、パッケージの名前空間を追加します (ご希望の場合、グローバルに)。そして、よりよいパフォーマンスのためにクラスを追加します。
</p>
<pre class="php"><code>// 名前空間を追加する。オートローダがクラスを見つけられるようにするために必要
Autoloader::add_namespace('Mypackage', __DIR__.'/classes/');
// コア名前空間として追加する
Autoloader::add_core_namespace('Mypackage');
// コア名前空間 (クラスはグローバルにエイリアスが作成され、名前空間のプレフィックスなしで利用できる) として追加する
// 第 2 引数を <kbd>true</kbd> にセットすると、コアクラスを上書きできる
Autoloader::add_core_namespace('Mypackage', true);
// そしてクラスを追加する、これは以下に役立つ:
// - 最適化: パス検索が不要に
// - コア名前空間として使用できるようにする必要がある場合
// - オートローダのパス検索ルールに反する場合
Autoloader::add_classes(array(
'Mypackage\\Classname' => __DIR__.'/classes/classname.php',
'Mypackage\\Anotherclass' => __DIR__.'/classes/anotherclass.php',
));
</code></pre>
<p>クラスの準備が整ったら、それらを使用することができます。</p>
<p class="note">Note: パッケージの名前空間がグローバルにエイリアスされていない場合、名前空間を指定する必要があります:</p>
<pre class="php"><code>// グローバルにエイリアスされている場合
$instance = new Myclass;
// グローバルにエイリアスされていない場合
$instance = new Mynamespace\Myclass;
</code></pre>
</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/packages.html">原文コミット履歴</a> | <a href="https://github.com/NEKOGET/FuelPHP_docs_jp/commits/1.8/develop_japanese/general/packages.html">翻訳コミット履歴</a> | <a href="https://github.com/NEKOGET/FuelPHP_docs_jp/blob/1.8/develop_japanese/general/packages.html">GitHubで修正</a> ]
</p>
</footer>
</div>
</body>
</html>