diff --git a/book/security.rst b/book/security.rst index 4427ff1..6cfc075 100644 --- a/book/security.rst +++ b/book/security.rst @@ -1298,6 +1298,8 @@ HTTP 認証やフォームログインなどの全ての認証メカニズムは ユーザが一旦ログアウトすると、そのユーザは、上記の ``target`` の値によって定義されたパス(``homepage`` など)にリダイレクトされます。ログアウトの設定に関する詳細は :doc:`Security Configuration Reference` を参照してください。 +.. _book-security-template: + テンプレートにおけるアクセス制御 -------------------------------- diff --git a/book/translation.rst b/book/translation.rst index 4c863b8..ed9d50a 100644 --- a/book/translation.rst +++ b/book/translation.rst @@ -692,9 +692,10 @@ apples`` が使われます。 多くの場合、翻訳はテンプレート内で発生します。 Symfony2 は Twig と PHP テンプレートの 両方をネイティブでサポートします。 +.. _book-translation-tags: + Twig テンプレート ~~~~~~~~~~~~~~~~~ - Symfony2 はメッセージの翻訳に役立つよう特別な Twig タグ (``trans`` と ``transChoice``) を提供します。 @@ -724,6 +725,8 @@ Symfony2 はメッセージの翻訳に役立つよう特別な Twig タグ (``t {0} There is no apples|{1} There is one apple|]1,Inf] There are %count% apples {% endtranschoice %} +.. _book-translation-filters: + ``trans``、``transchoice``フィルターは、*variable texts*や複雑な式を変換するために使用できます。 .. code-block:: jinja diff --git a/cookbook/configuration/index.rst b/cookbook/configuration/index.rst new file mode 100644 index 0000000..8a4dfe9 --- /dev/null +++ b/cookbook/configuration/index.rst @@ -0,0 +1,22 @@ +.. note:: + + * 対象バージョン:2.3 + * 翻訳更新日:2013/11/26 + +コンフィギュレーション +========================= + +.. toctree:: + :maxdepth: 2 + + environments + override_dir_structure + external_parameters + pdo_session_storage + + +.. front_controllers_and_kernel 未翻訳 +.. apache_router 未翻訳 +.. web_server_configuration 未翻訳 + +.. 2013/11/26 77web fe5aa3ba5b9558c37db93c97ac5406d6c04d35ad \ No newline at end of file diff --git a/cookbook/configuration/override_dir_structure.rst b/cookbook/configuration/override_dir_structure.rst new file mode 100644 index 0000000..f99af5a --- /dev/null +++ b/cookbook/configuration/override_dir_structure.rst @@ -0,0 +1,146 @@ +.. index:: + single: Override Symfony + +.. note:: + + * 対象バージョン:2.3 + * 翻訳更新日:2013/11/26 + + +Symfony のディレクトリ構造をカスタマイズする方法 +===================================================== + +Symfony には最初からデフォルトのディレクトリ構造があります。このディレクトリ構造は開発者が好きなように変更することができます。 +デフォルトのディレクトリ構造は下記のようになっています。 + +.. code-block:: text + + app/ + cache/ + config/ + logs/ + ... + src/ + ... + vendor/ + ... + web/ + app.php + ... + +.. _override-cache-dir: + +``cache`` ディレクトリを変更する +-------------------------------- + +キャッシュのディレクトリは、アプリケーションの ``AppKernel`` クラスの ``getCacheDir`` をオーバーライドすることにより変更できます。:: + + // app/AppKernel.php + + // ... + class AppKernel extends Kernel + { + // ... + + public function getCacheDir() + { + return $this->rootDir.'/'.$this->environment.'/cache'; + } + } + +``$this->rootDir`` は ``app`` ディレクトリへの絶対パスで、 ``$this->environment`` は現在の環境です(例えば、 ``dev`` のような) +上の例では、キャッシュのディレクトリを ``app/{environment}/cache`` に変更しています。 + +.. caution:: + + ``cache`` ディレクトリは各環境ごとに別々にしておかなくてはいけません。さもないと、予想できない挙動となることがあります。 + 各環境にはそれぞれの設定ファイルのキャッシュを生成するため、キャッシュファイルを保存するために他とは違うディレクトリが必要なのです。 + +.. _override-logs-dir: + +``logs`` ディレクトリを変更する +------------------------------- + +``logs`` ディレクトリを変更する方法は、 ``cache`` ディレクトリを変更するのと同じですが、オーバーライドするメソッドは ``getLogDir`` です。:: + + // app/AppKernel.php + + // ... + class AppKernel extends Kernel + { + // ... + + public function getLogDir() + { + return $this->rootDir.'/'.$this->environment.'/logs'; + } + } + +上の例ではディレクトリのパスを ``app/{environment}/logs`` に変更しています。 + +``web`` ディレクトリを変更する +------------------------------ + +``web`` ディレクトリのパスを変更したり移動したりする必要があるなら、フロントコントローラーである ``app.php`` と ``app_dev.php`` にある ``app`` ディレクトリのパスが正しく保たれているだけで大丈夫です。 +単に web ディレクトリのディレクトリ名を変更しただけであれば、そのままで構いません。しかし、もしどこかに移動したのなら、フロントコントローラーに含まれるパスを変更しなければなりません。:: + + require_once __DIR__.'/../Symfony/app/bootstrap.php.cache'; + require_once __DIR__.'/../Symfony/app/AppKernel.php'; + +更に、 ``composer.json`` にある ``extra.symfony-web-dir`` オプションも変更しなければならないでしょう。 + +.. code-block:: json + + { + ... + "extra": { + ... + "symfony-web-dir": "my_new_web_dir" + } + } + +.. tip:: + + 共有ホスティングでは ``public_html`` が公開ディレクトリとして使われることがあります。 ``web`` ディレクトリを ``public_html`` にリネームするのは、共有ホスティングで Symfony プロジェクトを動かす方法の一つです。 + 別の方法として、アプリケーションを公開ディレクトリ外にデプロイし、 ``public_html`` を削除して、アプリケーションの ``web`` ディレクトリへのシンボリックリンクに置き換えてしまうという方法もあります。 + +.. note:: + + AsseticBundle を使っている場合は、バンドルが ``web`` ディレクトリを正しく使えるように下記の設定も必要です。 + + .. configuration-block:: + + .. code-block:: yaml + + # app/config/config.yml + + # ... + assetic: + # ... + read_from: "%kernel.root_dir%/../../public_html" + + .. code-block:: xml + + + + + + + .. code-block:: php + + // app/config/config.php + + // ... + $container->loadFromExtension('assetic', array( + // ... + 'read_from' => '%kernel.root_dir%/../../public_html', + )); + + 設定を変更したら、再度アセットをダンプするだけで、アプリケーションを使うことができます。 + + .. code-block:: bash + + $ php app/console assetic:dump --env=prod --no-debug + + +.. 2013/12/09 77web 1f7898045f3f1ad06dc63f32f4d921519fc5e3d7 \ No newline at end of file diff --git a/cookbook/index.rst b/cookbook/index.rst index 9a80b2a..5a89d75 100644 --- a/cookbook/index.rst +++ b/cookbook/index.rst @@ -6,9 +6,7 @@ email gmail - configuration/environments - configuration/pdo_session_storage - configuration/external_parameters + configuration/index templating/PHP controller/error_pages controller/service diff --git a/cookbook/map.rst.inc b/cookbook/map.rst.inc index 480961c..adbd8a8 100644 --- a/cookbook/map.rst.inc +++ b/cookbook/map.rst.inc @@ -46,15 +46,19 @@ * :doc:`/cookbook/validation/custom_constraint` * (doctrine) :doc:`/cookbook/doctrine/file_uploads` -* **コンフィギュレーションとサービスコンテナ** +* **コンフィギュレーション** * :doc:`/cookbook/configuration/environments` + * :doc:`/cookbook/configuration/override_dir_structure` * :doc:`/cookbook/configuration/external_parameters` + * :doc:`/cookbook/configuration/pdo_session_storage` + +* **サービスコンテナ** + * :doc:`/cookbook/service_container/factories` * :doc:`/cookbook/service_container/parentservices` * :doc:`/cookbook/service_container/scopes` * :doc:`/cookbook/service_container/tags` - * :doc:`/cookbook/configuration/pdo_session_storage` * **バンドル** diff --git a/reference/YAML.rst b/reference/YAML.rst deleted file mode 100644 index 277d905..0000000 --- a/reference/YAML.rst +++ /dev/null @@ -1,5 +0,0 @@ -このページの翻訳はまだ行われていません。 -======================================== - -翻訳にご協力くださる方は -`github/symfony-japan `_ まで! diff --git a/reference/configuration/kernel.rst b/reference/configuration/kernel.rst new file mode 100644 index 0000000..0990803 --- /dev/null +++ b/reference/configuration/kernel.rst @@ -0,0 +1,91 @@ +.. index:: + single: Configuration reference; Kernel class + +.. note:: + + * 対象バージョン : 2.3(2.1以降) + * 翻訳更新日 : 2013/11/25 + +カーネルの設定(例えば AppKernel) +========================================== + +設定の中にはカーネルクラス自体によって行うことができるものもあります。(カーネルクラスは通常 ``app/AppKernel.php`` にあります) 設定のカスタマイズは、継承元の :class:`Symfony\\Component\\HttpKernel\\Kernel` クラスの特定のメソッドをオーバーライドすることで実現できます。 + +設定 +------------- + +* `キャラクタセット`_ +* `カーネル名`_ +* `ルートディレクトリ`_ +* `キャッシュディレクトリ`_ +* `ログディレクトリ`_ + +キャラクタセット +~~~~~~~~~~~~~~~~~ + +**type**: ``string`` **default**: ``UTF-8`` + +アプリケーションで使用されるキャラクタセットです。キャラクタセットを変更するには、 :method:`Symfony\\Component\\HttpKernel\\Kernel::getCharset` メソッドをオーバーライドし、別のキャラクタセットを返すように変更します。たとえば下記のようにします。:: + + // app/AppKernel.php + + // ... + class AppKernel extends Kernel + { + public function getCharset() + { + return 'ISO-8859-1'; + } + } + +カーネル名 +~~~~~~~~~~~ + +**type**: ``string`` **default**: ``app`` (カーネルクラスが配置されているディレクトリ名) + +設定を変更するには、 :method:`Symfony\\Component\\HttpKernel\\Kernel::getName` メソッドをオーバーライドしてください。或いは、カーネルクラスを他のディレクトリに移動しても良いです。 +たとえば、カーネルを ``app`` から ``foo`` ディレクトリに移動すると、カーネル名は ``foo`` になります。 + +カーネル名は、通常は直接問題になることはありません。キャッシュファイルの生成に使われるだけだからです。 +カーネルを複数使用するアプリケーションを作る場合、一番簡単な方法は ``app`` ディレクトリをコピーしてディレクトリ名を変更することです。( ``foo`` のようなディレクトリ名に) + +ルートディレクトリ +~~~~~~~~~~~~~~~~~~~~ + +**type**: ``string`` **default**: ``AppKernel`` のディレクトリ + +カーネルのルートディレクトリを返します。 Symfony Standard edition の場合、ルートディレクトリは ``app`` ディレクトリを指しています。 + +設定を変更するには、 :method:`Symfony\\Component\\HttpKernel\\Kernel::getRootDir` メソッドをオーバーライドします。:: + + // app/AppKernel.php + + // ... + class AppKernel extends Kernel + { + // ... + + public function getRootDir() + { + return realpath(parent::getRootDir().'/../'); + } + } + +キャッシュディレクトリ +~~~~~~~~~~~~~~~~~~~~~~~ + +**type**: ``string`` **default**: ``$this->rootDir/cache/$this->environment`` + +キャッシュディレクトリのパスを返します。設定を変更するには、 :method:`Symfony\\Component\\HttpKernel\\Kernel::getCacheDir` メソッドをオーバーライドしてください。 +詳しくは、 ":ref:`override-cache-dir`" を参照してください。 + + +ログディレクトリ +~~~~~~~~~~~~~~~~~~ + +**type**: ``string`` **default**: ``$this->rootDir/logs`` + +ログディレクトリのパスを返します。設定を変更するには、 :method:`Symfony\\Component\\HttpKernel\\Kernel::getLogDir` メソッドをオーバーライドしてください。 +詳しくは ":ref:`override-logs-dir`" を参照してください。 + +.. 2013/11/26 77web 4346f75f05a5ee010d0148ea251e99c7f6a02c38 \ No newline at end of file diff --git a/reference/configuration/mongodb.rst b/reference/configuration/mongodb.rst deleted file mode 100644 index 277d905..0000000 --- a/reference/configuration/mongodb.rst +++ /dev/null @@ -1,5 +0,0 @@ -このページの翻訳はまだ行われていません。 -======================================== - -翻訳にご協力くださる方は -`github/symfony-japan `_ まで! diff --git a/reference/forms/twig_reference.rst b/reference/forms/twig_reference.rst index 277d905..ed2bd3d 100644 --- a/reference/forms/twig_reference.rst +++ b/reference/forms/twig_reference.rst @@ -1,5 +1,341 @@ -このページの翻訳はまだ行われていません。 -======================================== +.. index:: + single: Forms; Twig form function reference + +Twig テンプレートのフォーム関数と変数 +================================================== + +テンプレートでフォームを扱うとき、二つの強力な道具があります。 + +* フォームの各部を出力する:ref:`関数 +* フィールドについてのあらゆる情報が取得できる:ref:`変数 ` + +関数はフィールドを出力するのによく使われます。一方、変数は普通はそれほど使いませんが、フィールドのラベル・ID属性・エラー、その他フィールドに関するあらゆる情報を利用することができ、とても強力です。 + +.. _reference-form-twig-functions: + +Form 出力関数 +------------------------ + +このマニュアルではフォームを出力するためのありとあらゆる Twig 関数を掲載しています。様々な関数がありますが、それぞれが違うフォーム部品の出力に対応しています。(例えば、ラベル、エラーメッセージ、ウィジェットなど) + +.. _reference-forms-twig-form: + +form(view, variables) +--------------------- + +フォーム全体のHTMLを出力します。 + +.. code-block:: jinja + + {# フォームを出力し、submitメソッドを変更します #} + {{ form(form, {'method': 'GET'}) }} + +主にアプリケーションのプロトタイプを作成するときや、カスタムフォームテーマを利用するときに使います。フォームを出力するときにもっと柔軟性がほしいなら、フォームの各部品を出力する他のヘルパーを利用した方が良いでしょう。 + +.. code-block:: jinja + + {{ form_start(form) }} + {{ form_errors(form) }} + + {{ form_row(form.name) }} + {{ form_row(form.dueDate) }} + + {{ form_row(form.submit, { 'label': '送信' }) }} + {{ form_end(form) }} + +.. _reference-forms-twig-start: + +form_start(view, variables) +--------------------------- + +フォームの開始タグを出力します。設定されたメソッドとアクションを考慮します。 +フォームがファイルアップロードを含んでいれば、適切な ``enctype`` も出力します。 + +.. code-block:: jinja + + {# 開始タグを出力し、送信メソッドを変更します #} + {{ form_start(form, {'method': 'GET'}) }} + +.. _reference-forms-twig-end: + +form_end(view, variables) +------------------------- + +フォームの終了タグを出力します。 + +.. code-block:: jinja + + {{ form_end(form) }} + +``render_rest`` をfalseにセットしない限り、 ``form_rest()`` も出力します。 + +.. code-block:: jinja + + {# 未出力のフィールドを出力しません #} + {{ form_end(form, {'render_rest': false}) }} + +.. _reference-forms-twig-label: + +form_label(view, label, variables) +---------------------------------- + +指定したフィールドのラベルを出力します。第二引数として、このフィールドに出力したいラベルを渡すこともできます。 + +.. code-block:: jinja + + {{ form_label(form.name) }} + + {# 下記の二つの書き方は同じ意味になります #} + {{ form_label(form.name, 'お名前', {'label_attr': {'class': 'foo'}}) }} + {{ form_label(form.name, null, {'label': 'お名前', 'label_attr': {'class': 'foo'}}) }} + +``variables`` について詳しくは ":ref:`twig-reference-form-variables`" を参照してください。 + +.. _reference-forms-twig-errors: + +form_errors(view) +----------------- + +指定したフィールドのエラーを出力します。 + +.. code-block:: jinja + + {{ form_errors(form.name) }} + + {# グローバルなエラーを出力します #} + {{ form_errors(form) }} + +.. _reference-forms-twig-widget: + +form_widget(view, variables) +---------------------------- + +指定したフィールドの HTML ウィジェットを出力します。 +フォーム全体やフォームの集合に対して使用すると、それに含まれている全フィールドの各行を出力します。 + +.. code-block:: jinja + + {# ウィジェットを出力し、 "foo" クラスを追加します #} + {{ form_widget(form.name, {'attr': {'class': 'foo'}}) }} + +``form_widget`` の第二引数は変数の配列です。 +一番よく使われるのは ``attr`` で、HTMLウィジェットに追加する属性の配列です。フィールドのタイプによってはテンプレートに関係する他の変数も渡すことができます。 +``attributes`` は一度に多数のフィールドを出力するときでも(たとえば、 ``form_widget(form)`` としたとき)再帰しません。 + +``variables`` についての詳細は ":ref:`twig-reference-form-variables`" を参照してください。 + +.. _reference-forms-twig-row: + +form_row(view, variables) +------------------------- + +指定したフィールドの「行」、つまりラベル・エラーメッセージ・ウィジェットの組み合わさったものを出力します。 + +.. code-block:: jinja + + {# 行を出力しますが、ラベルはfooに変更します #} + {{ form_row(form.name, {'label': 'foo'}) }} + +``form_row`` の第二引数は変数の配列です。 +上の例のように、 Symfony で提供されているテンプレートではラベルのみ上書きすることができます。 + +``variables`` について詳細は ":ref:`twig-reference-form-variables`" を参照してください。 + +.. _reference-forms-twig-rest: + +form_rest(view, variables) +-------------------------- + +指定したフォームについてまだ出力されていない全てのフィールドを出力します。 +hidden フィールドや、出力し忘れたフィールドを出力してくれるので、いつもこのヘルパーを入れておくと便利です。 + +.. code-block:: jinja + + {{ form_rest(form) }} + +.. _reference-forms-twig-enctype: + +form_enctype(view) +------------------ + +.. note:: + + このヘルパーは Symfony 2.3 で廃止され、 Symfony 3.0 で削除される予定です。代わりに ``form_start()`` を使用してください。 + +フォームに少なくとも一つのファイルアップロードフィールドがあるとき、このヘルパーは必要な ``enctype="multipart/form-data"`` フォーム属性を出力します。 form タグにいつでもこれを含めておくと便利です。 + +.. code-block:: html+jinja + +
+ +Form テストリファレンス +-------------------------- + +テストは、 ``is`` と一緒に使うことで条件を作ることができます。 +詳しくは `Twig ドキュメント`_ を参照してください。 + +.. _form-twig-selectedchoice: + +selectedchoice(selected_value) +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +このテストは、現在の選択肢が ``selected_value`` に等しいかどうかを調べます。 ``selected_value`` が配列のときには、現在の選択肢が ``selected_value`` の配列の中に含まれているかどうかを調べます。 + +.. code-block:: jinja + +