Skip to content

Commit 122784d

Browse files
committed
cookbook/configuration/override_dir_structure.rst翻訳, cookbook/configuration/index.rst追加,cookbook/index.rst更新
1 parent e79410c commit 122784d

File tree

4 files changed

+175
-5
lines changed

4 files changed

+175
-5
lines changed

cookbook/configuration/index.rst

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
.. note::
2+
3+
* 対象バージョン:2.3
4+
* 翻訳更新日:2013/11/26
5+
6+
コンフィギュレーション
7+
=========================
8+
9+
.. toctree::
10+
:maxdepth: 2
11+
12+
environments
13+
override_dir_structure
14+
external_parameters
15+
pdo_session_storage
16+
17+
18+
.. front_controllers_and_kernel 未翻訳
19+
.. apache_router 未翻訳
20+
.. web_server_configuration 未翻訳
21+
22+
.. 2013/11/26 77web fe5aa3ba5b9558c37db93c97ac5406d6c04d35ad
Lines changed: 146 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,146 @@
1+
.. index::
2+
single: Override Symfony
3+
4+
.. note::
5+
6+
* 対象バージョン:2.3
7+
* 翻訳更新日:2013/11/26
8+
9+
10+
Symfony のディレクトリ構造をカスタマイズする方法
11+
=====================================================
12+
13+
Symfony には最初からデフォルトのディレクトリ構造があります。このディレクトリ構造は開発者が好きなように変更することができます。
14+
デフォルトのディレクトリ構造は下記のようになっています。
15+
16+
.. code-block:: text
17+
18+
app/
19+
cache/
20+
config/
21+
logs/
22+
...
23+
src/
24+
...
25+
vendor/
26+
...
27+
web/
28+
app.php
29+
...
30+
31+
.. _override-cache-dir:
32+
33+
``cache`` ディレクトリを変更する
34+
--------------------------------
35+
36+
キャッシュのディレクトリは、アプリケーションの ``AppKernel`` クラスの ``getCacheDir`` をオーバーライドすることにより変更できます。::
37+
38+
// app/AppKernel.php
39+
40+
// ...
41+
class AppKernel extends Kernel
42+
{
43+
// ...
44+
45+
public function getCacheDir()
46+
{
47+
return $this->rootDir.'/'.$this->environment.'/cache';
48+
}
49+
}
50+
51+
``$this->rootDir`` は ``app`` ディレクトリへの絶対パスで、 ``$this->environment`` は現在の環境です(例えば、 ``dev`` のような)
52+
上の例では、キャッシュのディレクトリを ``app/{environment}/cache`` に変更しています。
53+
54+
.. caution::
55+
56+
``cache`` ディレクトリは各環境ごとに別々にしておかなくてはいけません。さもないと、予想できない挙動となることがあります。
57+
各環境にはそれぞれの設定ファイルのキャッシュを生成するため、キャッシュファイルを保存するために他とは違うディレクトリが必要なのです。
58+
59+
.. _override-logs-dir:
60+
61+
``logs`` ディレクトリを変更する
62+
-------------------------------
63+
64+
``logs`` ディレクトリを変更する方法は、 ``cache`` ディレクトリを変更するのと同じですが、オーバーライドするメソッドは ``getLogDir`` です。::
65+
66+
// app/AppKernel.php
67+
68+
// ...
69+
class AppKernel extends Kernel
70+
{
71+
// ...
72+
73+
public function getLogDir()
74+
{
75+
return $this->rootDir.'/'.$this->environment.'/logs';
76+
}
77+
}
78+
79+
上の例ではディレクトリのパスを ``app/{environment}/logs`` に変更しています。
80+
81+
``web`` ディレクトリを変更する
82+
------------------------------
83+
84+
``web`` ディレクトリのパスを変更したり移動したりする必要があるなら、フロントコントローラーである ``app.php`` と ``app_dev.php`` にある ``app`` ディレクトリのパスが正しく保たれているだけで大丈夫です。
85+
単に web ディレクトリのディレクトリ名を変更しただけであれば、そのままで構いません。しかし、もしどこかに移動したのなら、フロントコントローラーに含まれるパスを変更しなければなりません。::
86+
87+
require_once __DIR__.'/../Symfony/app/bootstrap.php.cache';
88+
require_once __DIR__.'/../Symfony/app/AppKernel.php';
89+
90+
更に、 ``composer.json`` にある ``extra.symfony-web-dir`` オプションも変更しなければならないでしょう。
91+
92+
.. code-block:: json
93+
94+
{
95+
...
96+
"extra": {
97+
...
98+
"symfony-web-dir": "my_new_web_dir"
99+
}
100+
}
101+
102+
.. tip::
103+
104+
共有ホスティングでは ``public_html`` が公開ディレクトリとして使われることがあります。 ``web`` ディレクトリを ``public_html`` にリネームするのは、共有ホスティングで Symfony プロジェクトを動かす方法の一つです。
105+
別の方法として、アプリケーションを公開ディレクトリ外にデプロイし、 ``public_html`` を削除して、アプリケーションの ``web`` ディレクトリへのシンボリックリンクに置き換えてしまうという方法もあります。
106+
107+
.. note::
108+
109+
AsseticBundle を使っている場合は、バンドルが ``web`` ディレクトリを正しく使えるように下記の設定も必要です。
110+
111+
.. configuration-block::
112+
113+
.. code-block:: yaml
114+
115+
# app/config/config.yml
116+
117+
# ...
118+
assetic:
119+
# ...
120+
read_from: "%kernel.root_dir%/../../public_html"
121+
122+
.. code-block:: xml
123+
124+
<!-- app/config/config.xml -->
125+
126+
<!-- ... -->
127+
<assetic:config read-from="%kernel.root_dir%/../../public_html" />
128+
129+
.. code-block:: php
130+
131+
// app/config/config.php
132+
133+
// ...
134+
$container->loadFromExtension('assetic', array(
135+
// ...
136+
'read_from' => '%kernel.root_dir%/../../public_html',
137+
));
138+
139+
設定を変更したら、再度アセットをダンプするだけで、アプリケーションを使うことができます。
140+
141+
.. code-block:: bash
142+
143+
$ php app/console assetic:dump --env=prod --no-debug
144+
145+
146+
.. 2013/12/09 77web 1f7898045f3f1ad06dc63f32f4d921519fc5e3d7

cookbook/index.rst

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@
66

77
email
88
gmail
9-
configuration/environments
10-
configuration/pdo_session_storage
11-
configuration/external_parameters
9+
configuration/index
1210
templating/PHP
1311
controller/error_pages
1412
controller/service

cookbook/map.rst.inc

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,15 +46,19 @@
4646
* :doc:`/cookbook/validation/custom_constraint`
4747
* (doctrine) :doc:`/cookbook/doctrine/file_uploads`
4848

49-
* **コンフィギュレーションとサービスコンテナ**
49+
* **コンフィギュレーション**
5050

5151
* :doc:`/cookbook/configuration/environments`
52+
* :doc:`/cookbook/configuration/override_dir_structure`
5253
* :doc:`/cookbook/configuration/external_parameters`
54+
* :doc:`/cookbook/configuration/pdo_session_storage`
55+
56+
* **サービスコンテナ**
57+
5358
* :doc:`/cookbook/service_container/factories`
5459
* :doc:`/cookbook/service_container/parentservices`
5560
* :doc:`/cookbook/service_container/scopes`
5661
* :doc:`/cookbook/service_container/tags`
57-
* :doc:`/cookbook/configuration/pdo_session_storage`
5862

5963
* **バンドル**
6064

0 commit comments

Comments
 (0)