Skip to content

Commit 3426c1e

Browse files
committed
[best practice] creating-the-project.rst を翻訳
1 parent f2442d8 commit 3426c1e

File tree

1 file changed

+246
-0
lines changed

1 file changed

+246
-0
lines changed
+246
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,246 @@
1+
プロジェクトの作成
2+
====================
3+
4+
Symfony のインストール
5+
------------------
6+
7+
これが Symfony をインストールする上で推奨するたったひとつの方法です。
8+
9+
.. best-practice::
10+
11+
常に `Composer`_ で Symfony をインストールする
12+
13+
Composer はモダンな PHP アプリケーションで使用されている依存パッケージの管理ツールです。
14+
プロジェクトに必要なパッケージを追加したり削除するときや
15+
コードで使用されているサードパーティ製のライブラリを更新するときに Composer を使えばスムーズでしょう。
16+
17+
Composer による依存パッケージの管理
18+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
19+
20+
Symfony をインストールする前にシステムワイドに Composer をインストールする必要があります。
21+
ターミナル(コマンドコンソール)を起動し以下のコマンドを実行してください。
22+
23+
.. code-block:: bash
24+
25+
$ composer --version
26+
Composer version 1e27ff5e22df81e3cd0cd36e5fdd4a3c5a031f4a 2014-08-11 15:46:48
27+
28+
おそらく、これとは異なるバージョンが表示されるでしょうが、
29+
これは、Composer が継続的に更新されているためですので心配いりません。
30+
バージョンも特に気にしなくて大丈夫です。
31+
32+
Composer をシステムワイドにインストールする
33+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
34+
35+
Linux か Mac OS X を利用している場合で、
36+
Composer がシステムワイドにインストールしていない場合は、
37+
以下の2つのコマンドを実行してください。
38+
(2つ目のコマンドでは ユーザパスワードが求められます)
39+
40+
.. code-block:: bash
41+
42+
$ curl -sS https://getcomposer.org/installer | php
43+
$ sudo mv composer.phar /usr/local/bin/composer
44+
45+
.. note::
46+
47+
利用している Linux のディストリビューションによっては
48+
``sudo`` の代わりに ``su`` コマンドを実行する必要があります。
49+
50+
もし Windows を利用している場合、
51+
`Composer download page`_ よりインストーラーをダウンロードして
52+
実行しインストールを進めてください。
53+
54+
ブログアプリケーションの作成
55+
-----------------------------
56+
57+
ここまで正しく設定できていれば、Symfony に基づいた新規プロジェクトを作成できます。
58+
コマンドコンソールでファイル作成権限があるディレクトリに移動し以下のコマンドを実行してください。
59+
60+
.. code-block:: bash
61+
62+
$ cd projects/
63+
$ composer create-project symfony/framework-standard-edition blog/
64+
65+
このコマンドは
66+
入手できるもっとも新しい安定版の Symfony による新しいプロジェクトを ``blog`` という
67+
新規ディレクトリをに作成します。
68+
69+
Symfony のインストールをチェックする
70+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
71+
72+
インストールが完了したら ``blog/`` ディレクトリに移動し
73+
Symfony が正しくインストールされているか以下のコマンドを実行して確認しましょう。
74+
75+
.. code-block:: bash
76+
77+
$ cd blog/
78+
$ php app/console --version
79+
80+
Symfony version 2.6.* - app/dev/debug
81+
82+
インストールした Symfony のバージョンが確認できれば、期待通りに動作しています。
83+
確認できなければ、システムの何が Symfony アプリケーションが正しく動作することを
84+
妨げているか以下のスクリプトで確認してください。
85+
86+
.. code-block:: bash
87+
88+
$ php app/check.php
89+
90+
利用しているシステムによっては、`check.php` を実行した際に2つ以上の異なるリストが確認できます。
91+
最初のリストでは Symfony アプリケーションを実行する際の必須なものを表示します。
92+
次のリストでは Symfony アプリケーションの実行を最適にするためのオプションを表示します。
93+
94+
.. code-block:: bash
95+
96+
Symfony2 Requirements Checker
97+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
98+
99+
> PHP is using the following php.ini file:
100+
/usr/local/zend/etc/php.ini
101+
102+
> Checking Symfony requirements:
103+
.....E.........................W.....
104+
105+
[ERROR]
106+
Your system is not ready to run Symfony2 projects
107+
108+
Fix the following mandatory requirements
109+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
110+
111+
* date.timezone setting must be set
112+
> Set the "date.timezone" setting in php.ini* (like Europe/Paris).
113+
114+
Optional recommendations to improve your setup
115+
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
116+
117+
* short_open_tag should be disabled in php.ini
118+
> Set short_open_tag to off in php.ini*.
119+
120+
121+
.. tip::
122+
123+
Symfony はセキュリティの理由でデジタル署名でリリースされます。
124+
Symfony のインストールを全て堅実に確かめたい場合は `public check sums repository`_ と
125+
`these steps`_ を参照しシグネチャを確認してください。
126+
127+
アプリケーションの構成
128+
---------------------------
129+
130+
アプリケーションを作成した後に、``blog/`` ディレクトリに移動すると
131+
いくつかのファイルとディレクトリが自動的に生成されていることが確認できるでしょう。
132+
133+
.. code-block:: text
134+
135+
blog/
136+
├─ app/
137+
│ ├─ console
138+
│ ├─ cache/
139+
│ ├─ config/
140+
│ ├─ logs/
141+
│ └─ Resources/
142+
├─ src/
143+
│ └─ AppBundle/
144+
├─ vendor/
145+
└─ web/
146+
147+
このファイルとディレクトリの階層は、アプリケーションを構築するために Symfony に
148+
よって推奨された慣習です。
149+
それぞれのディレクトリの推奨された用途は以下の通りです。
150+
151+
* ``app/cache/`` には、アプリケーションによって生成された全てのキャッシュファイルを保管します。
152+
* ``app/config/`` には、それぞれの環境のために定義された全ての設定を保管します。
153+
* ``app/logs/`` には、アプリケーションによって生成された全てのログ・ファイルを保管します。
154+
* ``app/Resources/`` には、アプリケーションのための全てのテンプレートとトランスレイションファイルを保管します。
155+
* ``src/AppBundle/`` には、Symfony 特有のコード (各コントローラーや各ルート)、ドメインのコード(e.g 各 Doctrine クラス)、そして全てのビジネスロジックを保管します。
156+
* ``vendor/`` には、Composer がインストールしたアプリケーションの依存パッケージを保管します。これらは決して変更するべきではありません。
157+
* ``web/`` には、全てのフロントコントローラーファイルとスタイルシートや JavaScript ファイル、そして画像ファイルなど全ての web assets を保管します。
158+
159+
アプリケーションバンドル
160+
~~~~~~~~~~~~~~~~~~~
161+
162+
Symfony 2.0 がリリースされたときに、多くの開発者は論理的モジュールにアプリケーションを分割する Symfony 1.x の
163+
流儀を自然と採用しました。
164+
これが、多くの Symfony アプリケーションが ``UserBundle``、``ProductBundle``、``InvoiceBundle`` などのように
165+
論理的特徴に分割したバンドルを使用している理由です。
166+
167+
これはバンドルは独立したソフトウェアの一片であるかのように再利用できるとうことを意味します。
168+
もし ``UserBundle`` が現状のままで他の Symfony アプリケーションで利用できないのであれば、
169+
それ自体をバンドルにするべきではありません。
170+
さらに加えると、``InvoiceBundle`` が ``ProductBundle`` に依存している場合、
171+
2つの別々のバンドルにアドバンテージはありません。
172+
173+
.. best-practice::
174+
175+
アプリケーションロジックのために ``AppBundle`` というただひとつのバンドルを作りなさい
176+
177+
ひとつの ``AppBundle`` が動作することがプロジェクトを束ねるということは
178+
コードがより簡潔になり理解することも容易になるでしょう。
179+
Symfony 2.6 からは、Symfony の公式ドキュメントでも ``AppBundle`` という名前を使います。
180+
181+
.. note::
182+
183+
このアプリケーションバンドルは決して共有されることがないため、
184+
プロジェクトで作成した vendor の ``AppBundle`` の接頭語は必要ありません。
185+
(e.g AcmeAppBundle)
186+
187+
大体において、これらのベストプラクティスを採用する Symfony アプリケーションの
188+
典型的なディレクトリ構成は以下のようになります。
189+
190+
.. code-block:: text
191+
192+
blog/
193+
├─ app/
194+
│ ├─ console
195+
│ ├─ cache/
196+
│ ├─ config/
197+
│ ├─ logs/
198+
│ └─ Resources/
199+
├─ src/
200+
│ └─ AppBundle/
201+
├─ vendor/
202+
└─ web/
203+
├─ app.php
204+
└─ app_dev.php
205+
206+
.. tip::
207+
208+
Symfony 2.6 以上のバージョンを利用している場合は、``AppBundle`` は既に生成されています。
209+
それよりも古いバージョンの場合は、以下のコマンドで生成することができます。
210+
211+
.. code-block:: bash
212+
213+
$ php app/console generate:bundle --namespace=AppBundle --dir=src --format=annotation --no-interaction
214+
215+
ディレクトリ構成の拡張
216+
---------------------------------
217+
218+
プロジェクトや基盤構造で Symfony のデフォルトのディレクトリ構成からいくつかの変更が必要になった場合は、
219+
``cache/``、``logs/``、``web/`` といったメインのディレクトリの場所を変更することができます。
220+
221+
さらに Symfony3 がリリースされるときにはわずかに異なるディレクトリ構成となるでしょう。
222+
223+
.. code-block:: text
224+
225+
blog-symfony3/
226+
├─ app/
227+
│ ├─ config/
228+
│ └─ Resources/
229+
├─ bin/
230+
│ └─ console
231+
├─ src/
232+
├─ var/
233+
│ ├─ cache/
234+
│ └─ logs/
235+
├─ vendor/
236+
└─ web/
237+
238+
これは大きな変化ですが、現時点では Symfony2 のディレクトリ構成を使うことを推奨します。
239+
240+
.. _`Composer`: https://getcomposer.org/
241+
.. _`Get Started`: https://getcomposer.org/doc/00-intro.md
242+
.. _`Composer download page`: https://getcomposer.org/download/
243+
.. _`override the location of the main directories`: http://symfony.com/doc/current/cookbook/configuration/override_dir_structure.html
244+
.. _`public checksums repository`: https://github.com./sensiolabs/checksums
245+
.. _`these steps`: http://fabien.potencier.org/article/73/signing-project-releases
246+

0 commit comments

Comments
 (0)