Changeset 27631
- Timestamp:
- 02/07/10 11:08:22 (3 years ago)
- Files:
-
- doc/branches/1.4/tutorial/ja/deprecated.markdown (modified) (12 diffs)
- doc/branches/1.4/tutorial/ja/upgrade.markdown (modified) (18 diffs)
- doc/branches/1.4/tutorial/ja/whats-new.markdown (modified) (51 diffs)
- doc/branches/1.4/tutorial/ja/which-version.markdown (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
doc/branches/1.4/tutorial/ja/deprecated.markdown
r25643 r27631 1 1.3 の廃止予定および削除される機能2 ================================ 1 1.3 での廃止予定および削除される機能 2 =================================== 3 3 4 4 このドキュメントでは symfony 1.3 で廃止予定もしくは削除されるすべての設定、クラス、メソッド、関数とタスクの一覧を示します。 … … 9 9 次のコアプラグインは symfony 1.3 で廃止予定になり symfony 1.4 で削除されます: 10 10 11 * `sfCompat10Plugin`: このプラグインを廃止予定に することで、動作するためにこのプラグインに依存するほかのすべての要素も廃止予定にします (1.0の admin ジェネレーターとフォームシステム)。これは `lib/plugins/sfPropelPlugin/data/generator/sfPropelAdmin` に設置される1.0の admin ジェネレーターのデフォルトテーマも含みます。11 * `sfCompat10Plugin`: このプラグインを廃止予定になることで、動作するためにこのプラグインに依存するほかのすべての要素も廃止予定になります (1.0 のアドミンジェネレーターとフォームシステム)。これは `lib/plugins/sfPropelPlugin/data/generator/sfPropelAdmin` に設置される 1.0 のアドミンジェネレーターのデフォルトテーマも含まれます。 12 12 13 13 * `sfProtoculousPlugin`: このプラグインによって提供されるヘルパーは控えめな JavaScript をサポートしないので、今後は使うべきではありません。 … … 18 18 次のメソッドと関数は symfony 1.3 かそれ以前で廃止予定になり、symfony 1.4 で削除されます: 19 19 20 * `sfToolkit::getTmpDir()`: このメソッドのすべての呼び出し を`sys_get_temp_dir()` に置き換えます。20 * `sfToolkit::getTmpDir()`: このメソッドのすべての呼び出しは `sys_get_temp_dir()` に置き換えます。 21 21 22 22 * `sfValidatorBase::setInvalidMessage()`: 新しい `sfValidatorBase::setDefaultMessage()` メソッドの呼び出しに置き換えます。 … … 26 26 * `sfTesterResponse::contains()`: より強力な `matches()` メソッドを使うことができます 27 27 28 * `sfTestFunctionalBase` の次のメソッド: `isRedirected()`、`isStatusCode()`、`responseContains()`、`isRequestParameter()`、`isResponseHeader()`、`isUserCulture()`、`isRequestFormat()` と `checkResponseElement()`: これらのメソッドは 1.2以降で廃止予定になり、テスタークラスに置き換えられました。28 * `sfTestFunctionalBase` の次のメソッド: `isRedirected()`、`isStatusCode()`、`responseContains()`、`isRequestParameter()`、`isResponseHeader()`、`isUserCulture()`、`isRequestFormat()` と `checkResponseElement()`: これらのメソッドは 1.2 以降で廃止予定になり、テスタークラスに置き換えられました。 29 29 30 30 * `sfFilesystem::sh()`: このメソッドのすべての呼び出しを新しい `sfFilesystem::execute()` メソッドの呼び出しに置き換えます。このメソッドの戻り値は `stdout` 出力と `stderr` 出力で構成される配列であることに注意してください。 31 31 32 * `sfAction::getDefaultView()`、`sfAction::handleError()`、`sfAction::validate()`: これらのメソッドは symfony 1.1 で廃止 になり、またあまり便利なものではありませんでした。symfony 1.1 に関して、`compat_10` 設定を `on` にセットする必要があります。32 * `sfAction::getDefaultView()`、`sfAction::handleError()`、`sfAction::validate()`: これらのメソッドは symfony 1.1 で廃止予定になり、またあまり便利なものではありませんでした。symfony 1.1 に関して、`compat_10` 設定を `on` にセットする必要があります。 33 33 34 34 * `sfComponent::debugMessage()`: 代わりに `log_message()` ヘルパーを使います。 … … 69 69 * `sfNoRouting` と `sfPathInfoRouting` 70 70 71 * `sfRichTextEditor`、`sfRichTextEditorFCK` と `sfRichTextEditorTinyMCE`: これらはウィジェットシステムに置き換えられました (下記の"ヘルパー"の節を参照)。71 * `sfRichTextEditor`、`sfRichTextEditorFCK` と `sfRichTextEditorTinyMCE`: これらはウィジェットシステムに置き換えられました (下記の"ヘルパー"のセクションを参照)。 72 72 73 * `sfCrudGenerator`、`sfAdminGenerator`、`sfPropelCrudGenerator`、`sfPropelAdminGenerator`: これらのクラスは 1.0の adminジェネレーターで使われていました。73 * `sfCrudGenerator`、`sfAdminGenerator`、`sfPropelCrudGenerator`、`sfPropelAdminGenerator`: これらのクラスは 1.0のアドミンジェネレーターで使われていました。 74 74 75 * `sfPropelUniqueValidator`、`sfDoctrineUniqueValidator`: これらのクラスは 1.0のフォームシステムで使われていました。75 * `sfPropelUniqueValidator`、`sfDoctrineUniqueValidator`: これらのクラスは 1.0 のフォームシステムで使われていました。 76 76 77 * `sfLoader`: "メソッドと関数"の 節を参照。77 * `sfLoader`: "メソッドと関数"のセクションを参照。 78 78 79 79 * `sfConsoleRequest`、`sfConsoleResponse`、`sfConsoleController` … … 83 83 * `sfWidgetFormI18nSelectLanguage`、`sfWidgetFormI18nSelectCurrency` と `sfWidgetFormI18nSelectCountry`: 対応する `Choice` ウィジェットを使います (対応するのは順に `sfWidgetFormI18nChoiceLanguage`、`sfWidgetFormI18nChoiceCurrency` と `sfWidgetFormI18nChoiceCountry`)。カスタマイズできることを除いて、これらはまったく同じように動作します。 84 84 85 * `SfExtensionObjectBuilder`、`SfExtensionPeerBuilder`、`SfMultiExtendObjectBuilder`、`SfNestedSetBuilder`、`SfNestedSetPeerBuilder`、`SfObjectBuilder`、`SfPeerBuilder`: カスタムの Propelビルダークラスは Propel 1.4 の新しいビヘイビアシステムに移植されました。85 * `SfExtensionObjectBuilder`、`SfExtensionPeerBuilder`、`SfMultiExtendObjectBuilder`、`SfNestedSetBuilder`、`SfNestedSetPeerBuilder`、`SfObjectBuilder`、`SfPeerBuilder`: Propel のカスタムビルダークラスは Propel 1.4 の新しいビヘイビアシステムに移植されました。 86 86 87 87 次のクラスは symfony 1.3 で削除されます: 88 88 89 * `sfCommonFilter`: 結果とコードをマイグレートする方法に関する情報は "プロジェクトを 1.2から1.3/1.4にアップグレードする"のチュートリアルの"共通フィルターの削除"を参照してください。89 * `sfCommonFilter`: 結果とコードをマイグレートする方法に関する情報は "プロジェクトを 1.2 から 1.3/1.4 にアップグレードする"のチュートリアルの"共通フィルターの削除"を参照してください。 90 90 91 91 ヘルパー … … 94 94 次のヘルパーグループは symfony 1.3 で廃止予定になり symfony 1.4 で削除されます: 95 95 96 * `sfCompat10Plugin` によって提供される 1.0フォームシステムに関連するすべてのヘルパー: `DateForm`、`Form`、`ObjectAdmin`、`Object`と`Validation`96 * `sfCompat10Plugin` によって提供される 1.0 フォームシステムに関連するすべてのヘルパー: `DateForm`、`Form`、`ObjectAdmin`、`Object` と `Validation` 97 97 98 98 `form_tag()` ヘルパーは `Form` ヘルパーグループから `Url` ヘルパーグループに移動したので、 symfony 1.4 でも利用加能です。 99 99 100 PHP のインクルードパスからヘルパーをロードする機能は 1.3 で廃止予定になり1.4で削除されました。ヘルパーはプロジェクト、アプリケーションもしくはモジュールの `lib/helper/` ディレクトリのどれかひとつに設置しなければなりません。100 PHP のインクルードパスからヘルパーをロードする機能は 1.3 で廃止予定になり 1.4 で削除されました。ヘルパーはプロジェクト、アプリケーションもしくはモジュールの `lib/helper/` ディレクトリのどれか 1 つに設置しなければなりません。 101 101 102 102 設定 … … 105 105 次の設定 (`settings.yml` 設定で管理される) は symfony 1.3 から削除されました: 106 106 107 * `check_symfony_version`: この設定は symfony のバージョンが変更される場合にキャッシュの自動クリーニングを可能にするために数年前に導入されました。これは主にすべての顧客のあいだで symfony のバージョンが共有される共用ホスティングのコンフィギュレーションに便利でした。symfony 1.1 以降ではバッドプラクティスです (プロジェクトごとに symfony のバージョンを埋め込む必要がある)、設定は意味をなしません。さらに、この設定が `on` にセットされている場合、ファイルのコンテンツを得る必要があるときに、それぞれのリクエストに小さなオーバーヘッドを追加します。107 * `check_symfony_version`: この設定は symfony のバージョンが変更される場合にキャッシュの自動クリーニングを可能にするために数年前に導入されました。これは主にすべての顧客のあいだで symfony のバージョンが共有される共用ホスティングのコンフィギュレーションに便利でした。symfony 1.1 以降ではバッドプラクティスですので (プロジェクトごとに symfony のバージョンを埋め込む必要がある)、設定は無意味です。さらに、この設定が `on` にセットされている場合、ファイルのコンテンツを得る必要があるときに、それぞれのリクエストに小さなオーバーヘッドを追加します。 108 108 109 * `max_forwards`: この設定は symfony が例外を投げる前に許容されるフォワードの最大回数をコントロールします。これを設定可能にする値はありません。5 回より多くのフォワードが必要な場合、問題の認識とパフォーマンスの両方で問題があります。109 * `max_forwards`: この設定は symfony が例外を投げる前に許容されるフォワードの最大回数をコントロールします。これを設定可能にする値はありません。5 回より多くのフォワードが必要な場合、問題の認識とパフォーマンスの両方で問題があります。 110 110 111 * `sf_lazy_cache_key`: symfony 1.2.6 で大きなパフォーマンス改善として導入され、この設定はビューキャッシュのために遅延キャッシュキージェネレーションを有効にすることを許可しました。コア開発者は遅延がベストなアイデアと考える一方で、なかにはアクション自身がキャッシュ可能ではないときでも呼び出される `sfViewCacheManager::isCacheable()` に頼る 人もいました。symfony 1.3 に関しては、ふるまいは `sf_lazy_cache_key` が `true` にセットされる場合と同じになります。111 * `sf_lazy_cache_key`: symfony 1.2.6 で大きなパフォーマンス改善として導入され、この設定はビューキャッシュのために遅延キャッシュキージェネレーションを有効にすることを許可しました。コア開発者は遅延がベストなアイデアと考える一方で、なかにはアクション自身がキャッシュ可能ではないときでも呼び出される `sfViewCacheManager::isCacheable()` に頼るひともいました。symfony 1.3 に関しては、ふるまいは `sf_lazy_cache_key` が `true` にセットされる場合と同じになります。 112 112 113 * `strip_comments`: `strip_comments` は PHP 5.0.x バージョンのトークナイザーのバグが原因のコメントのストリッピング を無効にできるように導入されました。Tokenizer エクステンションが PHP によってコンパイルされていなかったとき、メモリーの大量消費を避けるためにも使われました。最初の問題は PHP の最小バージョンが5.2なので関係なくなっており2番目の問題はコメントのストリッピング機能をシミュレートした正規表現を削除することですでに修正されています。113 * `strip_comments`: `strip_comments` は PHP 5.0.x バージョンのトークナイザーのバグが原因のコメントのストリッピング機能を無効にできるように導入されました。Tokenizer エクステンションが PHP によってコンパイルされていなかったとき、メモリーの大量消費を避けるためにも使われました。最初の問題は PHP の最小バージョンが 5.2 なので関係なくなっており 2 番目の問題はコメントのストリッピング機能をシミュレートした正規表現を削除することですでに修正されています。 114 114 115 115 * `lazy_routes_deserialize`: このオプションはもう必要ありません。 … … 121 121 * `validation_error_prefix`、`validation_error_suffix`、`validation_error_class`、`validation_error_id_prefix`: これらの設定は Validation ヘルパーグループによって使われ、symfony 1.3 で廃止予定です。 122 122 123 * `is_internal` (`module.yml`): `is_internal` フラグはブラウザーからアクションが呼び出されるのを防 止するために使われました。これは symfony 1.0 でメール送信を保護するために追加されました。メールのサポートはこのトリックを必要としなくなったので、このフラグは削除され symfony コアではチェックされません。123 * `is_internal` (`module.yml`): `is_internal` フラグはブラウザーからアクションが呼び出されるのを防ぐために使われました。これは symfony 1.0 でメール送信を保護するために追加されました。メールのサポートはこのトリックを必要としなくなったので、このフラグは削除され symfony コアではチェックされません。 124 124 125 125 タスク … … 128 128 次のタスクは symfony 1.3 で削除されました: 129 129 130 * `project:freeze` と `project:unfreeze`: これらのタスクはプロジェクトによって使われる symfony のバージョンをプロジェクト自身の内部に埋め込むために使われました。これらはもはや必要ありません。長期間をかけて symfony をプロジェクトに埋め込むのがベストプラクティスになったからです。さらに、あるバージョンの symfony を別のバージョンに切り替える作業は本当に単純で必要なのは `ProjectConfiguration` クラスへのパスを変更することだけです。 symfony を手作業で埋め込むのもとても単純で symfony のディレクトリ全体をプロジェクトのどこかにコピーすることだけ必要です (`lib/vendor/symfony/`が推奨されます)。130 * `project:freeze` と `project:unfreeze`: これらのタスクはプロジェクトによって使われる symfony のバージョンをプロジェクト自身の内部に埋め込むために使われました。これらはもはや必要ありません。長期間をかけて symfony をプロジェクトに埋め込むのがベストプラクティスになったからです。さらに、あるバージョンの symfony を別のバージョンに切り替える作業は本当に単純で必要なのは `ProjectConfiguration` クラスへのパスを変更することだけです。symfony を手作業で埋め込むのもとても単純で symfony のディレクトリ全体をプロジェクトのどこかにコピーすることだけ必要です (`lib/vendor/symfony/` が推奨されます)。 131 131 132 132 次のタスクは symfony 1.3 で廃止予定で、symfony 1.4 で削除されます: … … 134 134 * symfony 1.0 のすべてのタスクのエイリアス 135 135 136 * `propel:init-admin`: このタスクは symfony 1.0 の adminジェネレーターモジュールを生成しました。136 * `propel:init-admin`: このタスクは symfony 1.0 のアドミンジェネレーターモジュールを生成しました。 137 137 138 138 次の Doctrine タスクは `doctrine:build` にマージされ symfony 1.4 で削除されます: … … 162 162 プロジェクトのルートの `doc/` ディレクトリは生成されなくなりました。symfony 自身でも使われていないからです。そして関連する `sf_doc_dir` も削除されました。 163 163 164 `sfDoctrinePlugin_doctrine_lib_path` 設定は、以前 Doctrine のカスタム lib ディレクトリを指定するのに使われていましたが、 1.3 で廃止予定になり 1.4 で削除されます。代わりに `sf_doctrine_dir` 設定を使ってください。164 `sfDoctrinePlugin_doctrine_lib_path` 設定は、以前 Doctrine のカスタム lib ディレクトリを指定するのに使われていましたが、1.3 で廃止予定になり 1.4 で削除されます。代わりに `sf_doctrine_dir` 設定を使ってください。 165 165 166 166 symfony のすべての `Base*` クラスは `abstract` とマークされていません。 doc/branches/1.4/tutorial/ja/upgrade.markdown
r25664 r27631 1 プロジェクトを 1.2から1.3/1.4にアップグレードする2 =============================================== 3 4 このドキュメントでは symfony 1.3/1.4 で行われた変更と 1.2プロジェクトをアップグレードするために必要な作業を説明します。5 6 symfony 1.3 で変更 /追加された機能の詳細を知りたければ、[「symfony 1.3/1.4 の新しい機能」](http://www.symfony-project.org/tutorial/1_4/ja/whats-new)のチュートリアルをご覧ください。1 プロジェクトを 1.2 から 1.3/1.4 にアップグレードする 2 =================================================== 3 4 このドキュメントでは symfony 1.3/1.4 で行われた変更と 1.2 プロジェクトをアップグレードするために必要な作業を説明します。 5 6 symfony 1.3 で変更または追加された機能の詳細を知りたければ、[「symfony 1.3/1.4 の新しい機能」](http://www.symfony-project.org/tutorial/1_4/ja/whats-new)のチュートリアルをご覧ください。 7 7 8 8 >**CAUTION** 9 >symfony 1.3/1.4 は PHP 5.2.4 とそれ以降と互換性があります。PHP 5.2.0 から 5.2.3までとも動作するかもしれませんが、保証はありません。9 >symfony 1.3/1.4 は PHP 5.2.4 とそれ以降と互換性があります。PHP 5.2.0 から 5.2.3 までとも動作するかもしれませんが、保証はありません。 10 10 11 11 symfony 1.4 にアップグレードする 12 12 ------------------------------- 13 13 14 (すべての廃止予定の機能が取り除かれている 以外) symfony 1.4は symfony 1.3 と同じなので、このバージョンにアップグレードするタスクはありません。1.4にアップグレードするには、最初に1.3にアップグレードしてから1.4リリースに切り替えなければなりません。15 16 1.4 にアップグレードする前に、`project:validate` タスクを実行することで廃止予定のクラス/メソッド/関数/設定などがプロジェクトで使われてないことを検証することもできます:14 (すべての廃止予定の機能が取り除かれていること以外) symfony 1.4 は symfony 1.3 と同じなので、このバージョンにアップグレードするタスクはありません。1.4にアップグレードするには、最初に 1.3 にアップグレードしてから1.4リリースに切り替えなければなりません。 15 16 1.4 にアップグレードする前に、`project:validate` タスクを実行することで廃止予定のクラス/メソッド/関数/設定などがプロジェクトで使われてないことを検証することもできます: 17 17 18 18 $ php symfony project:validate … … 20 20 このタスクは symfony 1.4 に切り替える前に変更する必要のあるすべてのファイルの一覧を表示します。 21 21 22 このタスクが多くの誤判断をしてしまう可能性のある見せかけの正規表現であることにご注意ください。また、これはすべてを検出できないので、これは起こりうる問題を特定するのを手助けするものであり、魔法の道具ではありません。 "1.3の廃止予定および削除される機能"のチュートリアルも注意深く読む必要があります。22 このタスクが多くの誤判断をしてしまう可能性のある見せかけの正規表現であることにご注意ください。また、これはすべてを検出できないので、これは起こりうる問題を特定するのを手助けするものであり、魔法の道具ではありません。「1.3 の廃止予定および削除される機能」のチュートリアルも注意深く読む必要があります。 23 23 24 24 >**NOTE** 25 >`sfCompat10Plugin` と `sfProtoculousPlugin` は 1.4から削除されました。`config/ProjectConfiguration.class.php` などのプロジェクトの設定ファイルでこれらを明示的に無効にする場合、これらのファイルからこれらの記述をすべて削除しなければなりません。25 >`sfCompat10Plugin` と `sfProtoculousPlugin` は 1.4 から削除されました。`config/ProjectConfiguration.class.php` などのプロジェクトの設定ファイルでこれらを明示的に無効にする場合、これらのファイルからこれらの記述をすべて削除しなければなりません。 26 26 27 27 symfony 1.3 にアップグレードするには? … … 34 34 * SCMツールを使わない場合、かならずプロジェクトのバックアップを行います。 35 35 36 * symfony を 1.3にアップグレードします。37 38 * プラグインを 1.3バージョンにアップグレードします。36 * symfony を 1.3 にアップグレードします。 37 38 * プラグインを 1.3 対応のものにアップグレードします。 39 39 40 40 * 自動アップグレードを実行するためにプロジェクトディレクトリから `project:upgrade1.3` タスクを立ち上げます: … … 42 42 $ php symfony project:upgrade1.3 43 43 44 このタスクは副作用なしで複数回立ち上げることができます。新しい symfony 1.3 ベータ/RC もしくは最終版にアップグレードするたびに、このタスクを立ち上げなければなりません。44 このタスクは副作用なしで複数回立ち上げることができます。新しい symfony 1.3 beta/RC もしくは最終版にアップグレードするたびに、このタスクを立ち上げなければなりません。 45 45 46 46 * 下記で記述される変更のために、モデルとフォームをリビルドする必要があります: … … 56 56 $ php symfony cache:clear 57 57 58 残りのセクションは symfony 1.3 で行われなんらかのアップグレード (自動もしくはそうではない) が必要な主要な変更を説明します。58 残りのセクションは symfony 1.3 で行われなんらかのアップグレード (自動もしくはそうではない) が必要な主要な変更を説明します。 59 59 60 60 廃止予定 61 61 -------- 62 62 63 symfony 1.3 を開発している間に、いくつかの設定、クラス、メソッド、関数とタスクを廃止予定にするもしくは削除してきました。詳細な情報は[ "1.3の廃止予定および削除される機能"](http://www.symfony-project.org/tutorial/1_4/ja/deprecated)を参照してくださるようお願いします。63 symfony 1.3 を開発している間に、いくつかの設定、クラス、メソッド、関数とタスクを廃止予定にするもしくは削除してきました。詳細な情報は[「1.3での廃止予定および削除される機能」](http://www.symfony-project.org/tutorial/1_4/ja/deprecated)を参照してくださるようお願いします。 64 64 65 65 オートロード機能 66 66 ---------------- 67 67 68 symfony 1.3 に関しては、`lib/vendor/` ディレクトリの下にあるファイルはもはやオートロードされません。`lib/vendor/` サブディレクトリをオートロードしたい場合、新しいエントリ ーをアプリケーションの `autoload.yml` 設定ファイルに追加します:68 symfony 1.3 に関しては、`lib/vendor/` ディレクトリの下にあるファイルはもはやオートロードされません。`lib/vendor/` サブディレクトリをオートロードしたい場合、新しいエントリをアプリケーションの `autoload.yml` 設定ファイルに追加します: 69 69 70 70 [yml] … … 79 79 * オートロードメカニズムをすでに持つ `lib/vendor/` ディレクトリの下でライブラリを設置する場合、symfony はファイルを再解析してキャッシュに不要なたくさんの情報を追加します (#5893 - http://trac.symfony-project.org/ticket/5893 を参照)。 80 80 81 * symfony のディレクトリが `lib/vendor/symfony/` という名前でなければ、プロジェクトのオートローダーは symfony ディレクトリ全体を再解析 し何らかの問題が起こります (#6064 - http://trac.symfony-project.org/ticket/6064 を参照)。81 * symfony のディレクトリが `lib/vendor/symfony/` という名前でなければ、プロジェクトのオートローダーは symfony ディレクトリ全体を再解析するために何らかの問題が起こります (#6064 - http://trac.symfony-project.org/ticket/6064 を参照)。 82 82 83 83 symfony 1.3 のオートロード機能は大文字と小文字を区別しません。 … … 90 90 `lazy_routes_deserialize` オプションはもはや必要ないので削除されました。 91 91 92 symfony 1.3 に関しては、ルーティングキャッシュが無効にされました。これはパフォーマンスの観点からたいていのプロジェクトにはベストなオプションです。ですので、ルーティングキャッシュをカスタマイズしな かった場合、これはすべてのアプリケーションで自動的に無効になります。1.3にアップグレードした後で、プロジェクトの動作が遅くなる場合、役に立つのか確認するためにルーティングキャッシュを追加するとよいでしょう。`factories.yml` に追加することで symfony 1.2 のデフォルトに戻すコンフィギュレーションは次のとおりです:92 symfony 1.3 に関しては、ルーティングキャッシュが無効にされました。これはパフォーマンスの観点からたいていのプロジェクトにはベストなオプションです。ですので、ルーティングキャッシュをカスタマイズしなければ、これはすべてのアプリケーションで自動的に無効になります。1.3 にアップグレードした後で、プロジェクトの動作が遅くなる場合、役に立っているのか確認するためにルーティングキャッシュを追加するとよいでしょう。`factories.yml` に追加することで symfony 1.2 のデフォルトに戻すコンフィギュレーションは次の通りです: 93 93 94 94 [yml] … … 120 120 * フィルターが簡単に無効にできるとしても、最初に存在を知らなければならず"背後"のマジックがはたらいているのでこれは簡単なタスクではありません。 121 121 122 * ヘルパーを使えばいつどこでアセットがレイアウトにインクルードされるのかより もよりきめ細かくコントロールできます (たとえば `head` タグのスタイルシート、`body` タグが終わる直前の JavaScript)123 124 * 暗黙よりも明示的であるほうが常に優れています (おまじないがなくなんじゃこりゃと驚かずに済みます; この問題に対する苦情はメーリングリストを参照)。125 126 * これは 小さな速度の改善を提供します。122 * ヘルパーを使えばいつどこでアセットがレイアウトにインクルードされるのかよりきめ細かくコントロールできます (たとえば `head` タグのスタイルシート、`body` タグが終わる直前の JavaScript) 123 124 * つねに暗黙よりも明示的であるほうが優れています (おまじないがないのでなんじゃこりゃと驚かずに済みます; この問題に対する苦情はメーリングリストを参照してください)。 125 126 * これは速度の小さな改善を提供します。 127 127 128 128 アップグレードするには? 129 129 130 * `common` フィルターをすべての `filters.yml` から削除する必要がある設定ファイル (これは `project:upgrade1.3` タスクによって自動的に行われ る)。131 132 * 以前と同じふるまい にするには `include_stylesheets()` と `include_javascripts()` 呼び出しをレイアウトに追加する必要があります (これはアプリケーションの `templates/` ディレクトリに収められている HTMLレイアウト用の `project:upgrade1.3` タスクによって自動的に行われます - これらは `<head>` タグをもたなければなりません; ほかのレイアウト、もしくはレイアウトを持たないが JavaScript ファイルかつ/もしくスタイルシートに依存するページを手動でアップグレードする必要があります)。130 * `common` フィルターをすべての `filters.yml` から削除する必要がある設定ファイル (これは `project:upgrade1.3` タスクによって自動的に行われます)。 131 132 * 以前と同じふるまいを保つには `include_stylesheets()` と `include_javascripts()` 呼び出しをレイアウトに追加する必要があります (これはアプリケーションの `templates/` ディレクトリに収められている HTML レイアウト用の `project:upgrade1.3` タスクによって自動的に行われます - これらは `<head>` タグを持たなければなりません; ほかのレイアウト、もしくはレイアウトを持たないが JavaScript ファイルかつ/もしくスタイルシートに依存するページを手動でアップグレードする必要があります)。 133 133 134 134 … … 140 140 ------ 141 141 142 次のタスククラスは リネームされました:142 次のタスククラスは改名されました: 143 143 144 144 symfony 1.2 | symfony 1.3 … … 152 152 ### フォーマッター 153 153 154 `sfFormatter::format()` の 3番目の引数は削除されました。154 `sfFormatter::format()` の 3 番目の引数は削除されました。 155 155 156 156 エスケーピング 157 157 ------------- 158 158 159 `ESC_JS_NO_ENTITIES` によって参照される `esc_js_no_entities()` は ANSI ではない文字を正しく処理するように更新されました。この変更の前は ANSI の値が`37`から`177`である文字のみがエスケープされませんでした。現在はバックスラッシュ : `\`、クォート: `'` & `"` と改行: `\n` & `\r`のみをエスケープします。160 161 Doctrine 統合162 ------------- 159 `ESC_JS_NO_ENTITIES` によって参照される `esc_js_no_entities()` は ANSI ではない文字を正しく処理するように更新されました。この変更の前は ANSI の値が`37`から`177`である文字のみがエスケープされませんでした。現在はバックスラッシュ (`\`)、クォート (`'` と `"`) 、そして改行 (`\n` と `\r`) のみをエスケープします。 160 161 Doctrine との統合 162 ----------------- 163 163 164 164 ### Doctrine の必須バージョン … … 166 166 Doctrine の svn:externals は最新の Doctrine 1.2 を使うように更新されました。Doctrine 1.2 の新しい機能に関しては[ここ](http://www.doctrine-project.org/upgrade/1_2)をご覧ください。 167 167 168 ### adminジェネレーターの削除機能169 170 adminジェネレーターバッチの削除機能はレコードをすべて削除する単独の DQL クエリを発行する代わりにレコードをフェッチしてそれぞれの個別のレコードに `delete()` メソッドを発行するように変更されました。それぞれの個別のレコードを削除するためのイベントを起動させるためです。168 ### アドミンジェネレーターの削除機能 169 170 アドミンジェネレーターバッチの削除機能はレコードをすべて削除する単独の DQL クエリを発行する代わりにレコードをフェッチしてそれぞれの個別のレコードに `delete()` メソッドを発行するように変更されました。それぞれの個別のレコードを削除するためのイベントを起動させるためです。 171 171 172 172 ### Doctrine プラグインスキーマをオーバーライドする … … 184 184 ### クエリのロギング 185 185 186 Doctrine 統合ログクエリはロガーオブジェクトに直接アクセスする代わりに `sfEventDispatcher` を使うことで機能します。加えて、これらのイベントの対象は コネクションもしくはクエリを実行するステートメントです。ロギングは新しい `sfDoctrineConnectionProfiler` クラスによって行われ、このクラスは `sfDoctrineDatabase` オブジェクトをとおしてアクセスできます。186 Doctrine 統合ログクエリはロガーオブジェクトに直接アクセスする代わりに `sfEventDispatcher` を使うことで機能します。加えて、これらのイベントの対象は接続もしくはクエリを実行するステートメントです。ロギングは新しい `sfDoctrineConnectionProfiler` クラスによって行われ、このクラスは `sfDoctrineDatabase` オブジェクトを通してアクセスできます。 187 187 188 188 プラグイン 189 189 ---------- 190 190 191 `ProjectConfiguration` クラスで有効にされるプラグインを管理するために `enableAllPluginsExcept()` メソッドを使う場合、異なるプラットフォームのあいだの一貫性を保証するために 名前でプラグインをソートするように警告されます。191 `ProjectConfiguration` クラスで有効にされるプラグインを管理するために `enableAllPluginsExcept()` メソッドを使う場合、異なるプラットフォームのあいだの一貫性を保証するためにプラグインを名前順でソートするように警告されます。 192 192 193 193 ウィジェット … … 199 199 -------- 200 200 201 symfony 1.3 は新しいメーラーファクトリ ーを持ちます。アプリケーションを作るとき、`factories.yml` は `test` と `dev` 環境の実用的なデフォルトを持ちます。しかし既存のプロジェクトをアップグレードする場合、これらの環境のために`factories.yml` を次のコンフィギュレーションにアップデートするとよいでしょう:201 symfony 1.3 は新しいメーラーファクトリを持ちます。アプリケーションを作るとき、`factories.yml` は `test` と `dev` 環境の実用的なデフォルトを持ちます。しかし既存のプロジェクトをアップグレードする場合、これらの環境のために`factories.yml` を次のコンフィギュレーションにアップデートするとよいでしょう: 202 202 203 203 [yml] … … 206 206 delivery_strategy: none 207 207 208 以前のコンフィギュレーション によって、メールは送信されません。もちろん、これらはまだロギングされ、`mailer` テスターは機能テストでまだ動きます。209 210 ひとつのアドレスですべてのメールを受け取りたいのであれば `single_address` 配信戦略を使います (たとえば `dev` 環境):208 以前のコンフィギュレーションでは、メールは送信されません。もちろん、これらはまだロギングされ、`mailer` テスターは機能テストでまだ動きます。 209 210 1 つのアドレスですべてのメールを受信したいのであれば `single_address` 配信戦略を使います (たとえば `dev` 環境): 211 211 212 212 [yml] … … 220 220 ---- 221 221 222 sfYAML は 1.2の仕様とより互換性を持ちます。設定ファイルで変更する必要のあるものは次のとおりです:222 sfYAML は 1.2 の仕様とより互換性を持ちます。設定ファイルで変更する必要のあるものは次の通りです: 223 223 224 224 * ブール値は文字列の `true` もしくは `false` でのみ表現されます。次のリストのなかの代替文字列を使っている場合、これらを `true` もしくは `false` に置き換えなければなりません: … … 237 237 ------ 238 238 239 symfony の以前のバージョンで使われていた カスタムの Propel ビルダークラスは新しい Propel 1.4 のビヘイビアクラスに置き換えられました。この強化を利用するにはプロジェクトの `propel.ini` ファイルをアップデートしなければなりません。239 symfony の以前のバージョンで使われていた Propel のカスタムビルダークラスは新しい Propel 1.4 のビヘイビアクラスに置き換わりました。この強化を利用するにはプロジェクトの `propel.ini` ファイルをアップデートしなければなりません。 240 240 241 241 古いビルダークラスを削除します: … … 259 259 propel.behavior.symfony_timestampable.class = plugins.sfPropelPlugin.lib.behavior.SfPropelBehaviorTimestampable 260 260 261 `project:upgrade` タスクはこの変更を行おうとしますが、`propel.ini` にローカルな変更をする場合、不可能です。261 `project:upgrade` タスクはこの変更を行おうとしますが、`propel.ini` でローカルな変更を行う場合、不可能です。 262 262 263 263 symfony 1.2 では `BaseFormFilterPropel` クラスは `lib/filter/base` に正しく生成されませんでしたが、symfony 1.3 で訂正されました; クラスは `lib/filter` に生成されます。`project:upgrade` タスクはこのファイルを移動させます。 … … 276 276 $autoload->register(); 277 277 278 `project:upgrade` タスクはこの変更を行おうとしますが、`test/bootstrap/unit.php` へのローカルな変更をする場合は不可能であることがあります。278 `project:upgrade` タスクはこの変更を行おうとしますが、`test/bootstrap/unit.php` でローカルな変更をする場合は不可能であることがあります。 doc/branches/1.4/tutorial/ja/whats-new.markdown
r26772 r27631 2 2 ============================= 3 3 4 このチュートリアルでは symfony 1.3/1.4 のための技術的な内容をおおまかに紹介します。このチュートリアルは symfony 1.2 ですでに作業をしており、symfony 1.3/1.4 の新しい機能を速く学びたい開発者向けです。4 このチュートリアルでは symfony 1.3/1.4 のための技術的な内容をおおまかに紹介します。このチュートリアルはすでに symfony 1.2 で作業をしており、symfony 1.3/1.4 の新しい機能を早く学びたい開発者を対象としています。 5 5 6 6 最初に、symfony 1.3/1.4 は PHP 5.2.4 とそれ以降と互換性があることにご注意ください。 7 7 8 1.2からアップグレードしたいのであれば、 symfony の配布ファイルの中で見つかる["プロジェクトを1.2から1.3/1.4にアップグレードする"](http://www.symfony-project.org/tutorial/1_4/ja/upgrade)ファイルをご覧ください。プロジェクトを symfony 1.3/1.4 に安全にアップグレードするために必要なすべての情報が手に入ります。8 1.2からアップグレードしたいのであれば、[「プロジェクトを 1.2 から 1.3/1.4 にアップグレードする」](http://www.symfony-project.org/tutorial/1_4/ja/upgrade)のページをご覧ください。プロジェクトを symfony 1.3/1.4 に安全にアップグレードするために必要なすべての情報が手に入ります。 9 9 10 10 … … 12 12 -------- 13 13 14 symfony 1.3/1.4 では SwiftMailer 4.1 に 基づく新しい標準メーラーが用意されました。14 symfony 1.3/1.4 では SwiftMailer 4.1 にもとづく新しい標準メーラーが用意されました。 15 15 16 16 メールの送信はシンプルでアクションから `composeAndSend()` メソッドを使うだけです: … … 19 19 $this->getMailer()->composeAndSend('from@example.com', 'to@example.com', 'Subject', 'Body'); 20 20 21 より柔軟性をもたせる必要があれば、 `compose()` メソッドを使い後で送信することもできます。添付ファイルをメッセージに追加する方法は次のとおりです:21 より柔軟性をもたせる必要があれば、後で `compose()` メソッドを使って送信することもできます。添付ファイルをメッセージに追加する方法は次の通りです: 22 22 23 23 [php] … … 28 28 $this->getMailer()->send($message); 29 29 30 メーラーはとても強力なので、詳 細な情報は公式マニュアルを参照してください。30 メーラーはとても強力なので、詳しい情報は公式マニュアルを参照してください。 31 31 32 32 セキュリティ … … 62 62 * `sfWidgetFormI18nChoiceTimezone` 63 63 64 これらの最初の 3つは廃止予定の `sfWidgetFormI18nSelectLanguage`、`sfWidgetFormI18nSelectCurrency` と `sfWidgetFormI18nSelectCountry` ウィジェットの置き換えです。64 これらの最初の 3 つは廃止予定の `sfWidgetFormI18nSelectLanguage`、`sfWidgetFormI18nSelectCurrency` と `sfWidgetFormI18nSelectCountry` ウィジェットの置き換えです。 65 65 66 66 ### 流れるようなインターフェイス … … 87 87 ### `sfValidatorUrl` 88 88 89 `sfValidatorUrl` は新しい `protocols` オプションを持つようになりました。次のように特定のプロトコルを許可 することができるようになりました:89 `sfValidatorUrl` は新しい `protocols` オプションを持つようになりました。次のように特定のプロトコルを許可できるようになりました: 90 90 91 91 [php] … … 101 101 ### `sfValidatorSchemaCompare` 102 102 103 `sfValidatorSchemaCompare` クラスは 2つの新しいコンパレーターを持つようになりました:104 105 * `IDENTICAL` 、は`===`と同等;106 * `NOT_IDENTICAL` 、は`!==`と同等;103 `sfValidatorSchemaCompare` クラスは 2 つの新しいコンパレーターを持つようになりました: 104 105 * `IDENTICAL` は `===` と同等です; 106 * `NOT_IDENTICAL` は `!==` と同等です; 107 107 108 108 ### `sfValidatorChoice`、`sfValidatorPropelChoice`、`sfValidatorDoctrineChoice` 109 109 110 `sfValidatorChoice`、`sfValidatorPropelChoice` そして `sfValidatorDoctrineChoice` バリデーターは `multiple` オプションが `true` の場合のみ有効になる ふたつの新しいオプションを持ちます:111 112 * `min` 選択 される必要がある最小の数113 * `max` 選択 される必要がある最大の数110 `sfValidatorChoice`、`sfValidatorPropelChoice` そして `sfValidatorDoctrineChoice` バリデーターは `multiple` オプションが `true` の場合のみ有効になる 2 つのの新しいオプションを持ちます: 111 112 * `min` 選択する必要がある最小の数 113 * `max` 選択する必要がある最大の数 114 114 115 115 ### 国際化バリデーター … … 126 126 sfValidatorBase::setDefaultMessage('required', 'This field is required.'); 127 127 128 上記のコードはすべてのバリデーターの ためにデフォルトの'Required.'メッセージをオーバーライドします。標準のメッセージはどのバリデーターが作成される前に定義しておかなければならないことに注意してください (コンフィグレーションクラスがよい場所です)。128 上記のコードはすべてのバリデーターのデフォルトメッセージである 'Required.' をオーバーライドします。標準メッセージはどのバリデーターが作成される前に定義しておかなければならないことに注意してください (コンフィグレーションクラスがよい場所です)。 129 129 130 130 >**NOTE** … … 133 133 symfony がエラーを表示するとき、使われるエラーメッセージは次のように決定されます: 134 134 135 * symfony はバリデーターが作 成されたときに渡されたメッセージを探します (バリデーターのコンストラクターの第2引数経由);135 * symfony はバリデーターが作られるときに渡されたメッセージを探します (バリデーターのコンストラクターの第 2 引数経由); 136 136 137 137 * 定義されていなければ、`setDefaultMessage()` メソッドで定義される初期メッセージを探します; … … 169 169 } 170 170 171 デフォルトでは、フィールドの配列はフィールドの順序を変更する ためにも使われます。自動的な順序づけを無効にするには、`useFields()` に2番目の引数として `false` を 渡します。171 デフォルトでは、フィールドの配列はフィールドの順序を変更するのにも使われます。自動的な順序づけを無効にするには、`useFields()` に 2 番目の引数として `false` を 渡します。 172 172 173 173 ### `sfForm::getEmbeddedForm($name)` … … 198 198 ### `BaseForm` 199 199 200 symfony 1.3/1.4 のすべての新しいプロジェクトには Form コンポーネントを拡張するもしくはプロジェクト固有の機能を追加するために使うことができる `BaseForm` クラスが入りま す。`sfDoctrinePlugin` と `sfPropelPlugin` によって生成されるフォームは自動的にこのクラスを継承します。追加のフォームクラスを作るのであれば `sfForm` よりも `BaseForm` を継承すべきです。200 symfony 1.3/1.4 のすべての新しいプロジェクトには Form コンポーネントを拡張するもしくはプロジェクト固有の機能を追加するために使うことができる `BaseForm` クラスが入りました。`sfDoctrinePlugin` と `sfPropelPlugin` によって生成されるフォームは自動的にこのクラスを継承します。追加のフォームクラスを作るのであれば `sfForm` よりも `BaseForm` を継承すべきです。 201 201 202 202 ### `sfForm::doBind()` … … 206 206 ### `sfForm(Doctrine|Propel)::doUpdateObject()` 207 207 208 Doctrine と Propel のフォームクラスに開発者が扱いやすい `->doUpdateObject()` メソッドが加えられました。このメソッドは すでに `->processValues()` によって処理された `->updateObject()` から値の配列を受け とります。208 Doctrine と Propel のフォームクラスに開発者が扱いやすい `->doUpdateObject()` メソッドが加えられました。このメソッドは すでに `->processValues()` によって処理された `->updateObject()` から値の配列を受け取ります。 209 209 210 210 ### `sfForm::enableLocalCSRFProtection()` と `sfForm::disableLocalCSRFProtection()` 211 211 212 `sfForm::enableLocalCSRFProtection()` と `sfForm::disableLocalCSRFProtection()` メソッドを使うとき、あなたのクラスの `configure()` メソッドから簡単に CSRF 防止機能を設定 することができます。212 `sfForm::enableLocalCSRFProtection()` と `sfForm::disableLocalCSRFProtection()` メソッドを使うとき、あなたのクラスの `configure()` メソッドから簡単に CSRF 防止機能を設定できます。 213 213 214 214 CSRF 防止機能を無効にするには、次のような行を `configure()` メソッドに追加します: … … 217 217 $this->disableLocalCSRFProtection(); 218 218 219 `disableLocalCSRFProtection()` を呼び出すことによって、フォームインスタンスを作 成するときに CSRF 対策の秘密の文字列を渡したとしても CSRF 防止機能は無効になります。219 `disableLocalCSRFProtection()` を呼び出すことによって、フォームインスタンスを作るときに CSRF 対策の秘密の文字列を渡したとしても CSRF 防止機能は無効になります。 220 220 221 221 ### 流れるようなインターフェイス … … 237 237 ### テストのスピードアップ 238 238 239 大規模なテストスイートの場合、変更するたびに 全てのテストを起動するのにとても時間をかかる可能性があります。特にテストが通らない場合などはそうでしょう。なぜならテストを修正するたびに、何も壊していないことを確認するためにテストスイート全体を再度実行することになるからです。しかし、テストが修正されない限り、全てのテストを再実行する必要はありません。symfony 1.3/1.4 では `test:all` と `symfony:test` タスクは前回の実行時に通らなかったテストだけを再実行する `--only-failed` (`-f` がショートカットになります) オプションを持つようになりました:239 大規模なテストスイートの場合、変更するたびにすべてのテストを起動するのにとても時間をかかる可能性があります。特にテストが通らない場合などはそうでしょう。なぜならテストを修正するたびに、何も壊していないことを確認するためにテストスイート全体を再度実行することになるからです。しかし、テストが修正されないかぎり、すべてのテストを再実行する必要はありません。symfony 1.3/1.4 では `test:all` と `symfony:test` タスクは前回の実行時に通らなかったテストだけを再実行する `--only-failed` (`-f` がショートカットになります) オプションを持つようになりました: 240 240 241 241 $ php symfony test:all --only-failed 242 242 243 どのように動作する かを説明します: まず最初に、全てのテストはいつもどおりに実行されます。しかし引き続きテストを実行しても、最後のテストで通らなかったものだけが実行されます。コードを修正したら、テストは通り次回以降の実行からは除外されます。再び全てのテストが通ったら、あなたは完全なテストスイートを実行し、洗い流し繰り返すことができます。243 どのように動作するのかを説明します: まず最初に、すべてのテストはいつも通りに実行されます。しかし引き続きテストを実行しても、最後のテストで通らなかったものだけが実行されます。コードを修正したら、テストが通り次回以降の実行から除外されます。再びすべてのテストが通ったら、あなたは完全なテストスイートを実行し、洗い流し繰り返すことができます。 244 244 245 245 ### 機能テスト … … 247 247 リクエストが例外を生成するとき、レスポンステスターの `debug()` メソッドは HTML 標準出力の代わりに、人間が読める例外のテキストの説明を出力するようになりました。より簡単にデバッグできるようになります。 248 248 249 `sfTesterResponse` はレスポンスの内容全体に対して正規表現で検索を行える新しい `matches()` メソッドを持つようになりました。XML のようなレスポンスではないもの、それは `checkElement()` が使えないようなレスポンスですが、そういった場合にとても役立ちます。ひ弱だった `contains()` メソッドの代わり にも使うことができます:249 `sfTesterResponse` はレスポンスの内容全体に対して正規表現で検索を行える新しい `matches()` メソッドを持つようになりました。XML のようなレスポンスではないもの、それは `checkElement()` が使えないようなレスポンスですが、そういった場合にとても役立ちます。ひ弱だった `contains()` メソッドの代わりとして使うこともできます: 250 250 251 251 [php] … … 258 258 ### JUnit と互換性のある XML 出力 259 259 260 テストタスクは `--xml` オプションを使うことでJUnit と互換性のある XML ファイルも出力できるようになりました:260 `--xml` オプションを使うことでテストタスクは JUnit と互換性のある XML ファイルも出力できるようになりました: 261 261 262 262 $ php symfony test:all --xml=log.xml … … 270 270 ### lime による出力の色づけ 271 271 272 symfony 1.3/1.4 では、lime は色づけを正しく行うようになりました。これが意味することは、ほとんどの場合において `lime_test` の lime コンストラクターの第 2引数を省略できるということです:272 symfony 1.3/1.4 では、lime は色づけを正しく行うようになりました。これが意味することは、ほとんどの場合において `lime_test` の lime コンストラクターの第 2 引数を省略できるということです: 273 273 274 274 [php] … … 277 277 ### `sfTesterResponse::checkForm()` 278 278 279 フォームの 全てのフィールドが正しくレンダリング処理されてレスポンスに含まれているかどうかをより簡単に確かめられるメソッドがレスポンステスターに収録されました:279 フォームのすべてのフィールドが正しくレンダリング処理されてレスポンスに含まれているかどうかをより簡単に確かめられるメソッドがレスポンステスターに入りました: 280 280 281 281 [php] … … 292 292 end(); 293 293 294 レスポンス が複数のフォームを含む場合は、どの DOM 部分をテストするかをピンポイントで指定する CSS セレクターを提供するオプションがあります:294 レスポンスに複数のフォームが含まれる場合は、どの DOM 部分をテストするかをピンポイントで指定する CSS セレクターを提供するオプションがあります: 295 295 296 296 [php] … … 324 324 ### `context.load_factories` をリスニングする 325 325 326 `context.load_factories` イベントのリスナーを機能テストに追加できるようになりました。これは symfony の以前のバージョンでは できませんでした。326 `context.load_factories` イベントのリスナーを機能テストに追加できるようになりました。これは symfony の以前のバージョンでは利用できませんでした。 327 327 328 328 … … 330 330 $browser->addListener('context.load_factories', array($browser, 'listenForNewContext')); 331 331 332 ### よりよい`->click()`333 334 CSS セレクターを`->click()` メソッドに 渡すことが可能で、セマンティックにしたい要素をターゲットにするのがはるかに楽になります。332 ### 改良された `->click()` 333 334 `->click()` メソッドに CSS セレクターを渡すことが可能で、セマンティックにしたい要素をターゲットにするのがはるかに楽になりました。 335 335 336 336 [php] … … 343 343 ------ 344 344 345 symfony の CLI はターミナルウィンドウの幅を検出することを試み、ラインのフォーマットを合わせようとします。検出できない場合 CLI は幅をデフォルトの 78カラムに合わせようとします。345 symfony の CLI はターミナルウィンドウの幅を検出することを試み、ラインのフォーマットを合わせようとします。検出できない場合 CLI は幅をデフォルトの 78 カラムに合わせようとします。 346 346 347 347 ### `sfTask::askAndValidate()` 348 348 349 ユーザーに質問をして得られた入力内容をバリデートする `sfTask::askAndValidate()` メソッドが新しく できました:349 ユーザーに質問をして得られた入力内容をバリデートする `sfTask::askAndValidate()` メソッドが新しく用意されました: 350 350 351 351 [php] … … 356 356 ### `symfony:test` 357 357 358 とき どき、開発者は特定のプラットフォームで symfony が正しく動作するのかをチェックするために symfony のテストスイートを実行する必要があります。従来は、symfony に附属している `prove.php` スクリプトを実行し確認しなければなりませんでした。symfony 1.3/1.4 では組み込みのタスク、コマンドラインから symfony のコアテストスイートを起動できる `symfony:test` タスクが用意され、ほかのタスクと同じように使うことができます:358 ときには、開発者は特定のプラットフォームで symfony が正しく動作するのかをチェックするために symfony のテストスイートを実行する必要があります。従来は、symfony に附属している `prove.php` スクリプトを実行し確認しなければなりませんでした。symfony 1.3/1.4 では組み込みのタスク、コマンドラインから symfony のコアテストスイートを起動できる `symfony:test` タスクが用意され、ほかのタスクと同じように使うことができます: 359 359 360 360 $ php symfony symfony:test … … 365 365 ### `project:deploy` 366 366 367 `project:deply` タスクは ちょっと改良されました。リアルタイムでファイルの転送状況を表示するようになりました。ただし、`-t` オプションが渡されたときだけです。もしオプションが指定されていなければタスクは何も表示しません、もちろんエラーは除きます。エラー時には、エラーの情報を出力し簡単に問題を認識できるように赤色の背景に出力します。367 `project:deply` タスクは少し改良されました。リアルタイムでファイルの転送状況を表示するようになりました。ただし、`-t` オプションが渡されたときだけです。もしオプションが指定されていなければタスクは何も表示しません、もちろんエラーは除きます。エラー時には、エラーの情報を出力し簡単に問題を認識できるように赤色の背景に出力します。 368 368 369 369 ### `generate:project` … … 386 386 より詳しい情報は公式ブログの[記事](http://www.symfony-project.org/blog/2009/06/10/new-in-symfony-1-3-project-creation-customization)にあります。 387 387 388 プロジェクトを生成するとき、2番目の引数として著者の名前を渡すことができます。これは symfony が新しいクラスを生成するときに phpdoc の `@author` タグに使う値を指定します。388 プロジェクトを生成するとき、2番目の引数として著者の名前を渡すことができます。これは symfony が新しいクラスを生成するときに PHPDoc の `@author` タグに使う値を指定します。 389 389 390 390 $ php /path/to/symfony generate:project foo "Joe Schmo" … … 392 392 ### `sfFileSystem::execute()` 393 393 394 `sfFileSystem::execute()` メソッドは `sfFileSystem::sh()` メソッドをより強力な機能 で置き換えます。このメソッドは `stdout` と `stderr` 出力のリアルタイム処理のコールバックをとります。また両方の出力を配列として返すこともできます。`sfProjectDeployTask` クラスで使い方の例を見つけることができます。394 `sfFileSystem::execute()` メソッドは `sfFileSystem::sh()` メソッドをより強力な機能に置き換えます。このメソッドは `stdout` と `stderr` 出力のリアルタイム処理のコールバックをとります。また両方の出力を配列として返すこともできます。`sfProjectDeployTask` クラスで使い方の例を見つけることができます。 395 395 396 396 ### `task.test.filter_test_files` … … 420 420 ### `sfBaseTask::setConfiguration()` 421 421 422 PHP から `sfBaseTask` を継承するタスクを呼び出すとき、`->run()` に `--application` と `--env` オプションを渡す必要はも うありません。その代わりに、ただ `->setConfiguration()` を呼び出すだけで設定オブジェクトを直接セットすることができます。422 PHP から `sfBaseTask` を継承するタスクを呼び出すとき、`->run()` に `--application` と `--env` オプションを渡す必要はもはやありません。その代わりに、ただ `->setConfiguration()` を呼び出すだけで設定オブジェクトを直接セットすることができます。 423 423 424 424 [php] … … 462 462 この出力は新しい `sfTask::asXml()` メソッドにもとづいており、これはタスクオブジェクトの XML 表現を返します。 463 463 464 たいていの場合において XML 出力は IDE のようなサードパーティ ーにとても役立つでしょう。464 たいていの場合において XML 出力は IDE のようなサードパーティにとても役立つでしょう。 465 465 466 466 ### `project:optimize` … … 493 493 可能であれば、開発環境の例外ページで Web デバッグツールバーが表示されます。 494 494 495 Propel 統合496 ----------- 495 Propel との統合 496 --------------- 497 497 498 498 Propel はバージョン1.4にアップグレードされました。Propel のアップグレードに関する詳しい情報は[公式サイト](http://propel.phpdb.org/trac/wiki/Users/Documentation/1.4)を訪問してくださるようお願いします。 … … 504 504 ### `propel:insert-sql` 505 505 506 `propel:insert-sql` がデータベースから 全てのデータを削除する前に確認を行います。このタスクは複数のデータベースからデータを削除することができるので、関連するデータベースの接続名も表示するようになりました。506 `propel:insert-sql` がデータベースからすべてのデータを削除する前に確認を行います。このタスクは複数のデータベースからデータを削除することができるので、関連するデータベースの接続名も表示するようになりました。 507 507 508 508 ### `propel:generate-module`、`propel:generate-admin`、`propel:generate-admin-for-route` … … 521 521 timestampable: ~ 522 522 523 もしくは、古い `schema.yml` 構文を使う場合 :523 もしくは、古い `schema.yml` 構文を使う場合次のようになります: 524 524 525 525 propel: … … 560 560 ### デフォルトの要件 561 561 562 `column` オプションがデフォルトの `id` になっているとき、デフォルトの必須要件の `\d+` は `sfObjectRouteCollection` にだけ適用されるようになりました。(`slug` のような) 数字でないカラムが指定されているとき代わりの必須要件を用意する必要はないということです。562 `column` オプションがデフォルトの `id` であるとき、デフォルトの必須要件の `\d+` は `sfObjectRouteCollection` にだけ適用されるようになりました。このことが意味するのは (`slug` のような) 数字でないカラムが指定されているとき代わりの必須要件を用意する必要はないということです。 563 563 564 564 ### `sfObjectRouteCollection` オプション … … 578 578 ### 出力の色づけ 579 579 580 symfony の CLI を使うとき、symfony はあなたが利用しているコンソールが色つき出力をサポートしているかどうかを推測しようとします。しかし、symfony は推測を間違える場合があります; たとえば、Cygwin を使っているときです (Windows プラットフォームでは カラー出力は常に切られているからです)。581 582 symfony 1.3/1.4 では、グローバルオプションの `--color` を渡すことで色つき出力 することを強制できるようになりました。583 584 国際化 (I18N)585 ---- 580 symfony の CLI を使うとき、symfony はあなたが利用しているコンソールが色つき出力をサポートしているかどうかを推測しようとします。しかし、symfony は推測を間違える場合があります; たとえば、Cygwin を使っているときです (Windows プラットフォームでは色つき出力はつねにオフだからです)。 581 582 symfony 1.3/1.4 では、グローバルオプションの `--color` を渡すことで色つき出力を強制できるようになりました。 583 584 国際化 (I18N) 585 ------------- 586 586 587 587 ### データの更新 588 588 589 すべての国際化オペレーションに使われるデータは `ICU` プロジェクトから更新されました。symfony には約 330のロケールファイルが付属しており、symfony 1.2 と比べると約70増えています。ですのでたとえば、言語リストの10番目の項目をチェックするテストケースが通らない可能性があることにご注意をお願いします。589 すべての国際化オペレーションに使われるデータは `ICU` プロジェクトから更新されました。symfony には約 330 個のロケールファイルが付属しており、symfony 1.2 と比べると約 70 個増えています。ですのでたとえば、言語リストの 10 番目の項目をチェックするテストケースが通らない可能性があることにご注意をお願いします。 590 590 591 591 ### ユーザーロケールを基準にソートする 592 592 593 このロケールに依存するデータ でのすべてのソートもロケールに依存して実行されます。この目的のために `sfCultureInfo->sortArray()` を使うことができます。593 このロケールに依存するデータにおけるすべてのソートもロケールに依存して実行されます。この目的のために `sfCultureInfo->sortArray()` を使うことができます。 594 594 595 595 プラグイン 596 596 ---------- 597 597 598 symfony 1.3/1.4 以前では、`sfDoctrinePlugin` と `sfCompat10Plugin` 以外のすべてのプラグインはデフォルトで有効にされ ました:598 symfony 1.3/1.4 以前では、`sfDoctrinePlugin` と `sfCompat10Plugin` 以外のすべてのプラグインはデフォルトで有効にされていました: 599 599 600 600 [php] … … 608 608 } 609 609 610 symfony 1.3/1.4 では、新しく作られたプロジェクトでプラグインを使う ためには `ProjectConfiguration` クラスで明示的に有効にしなければなりません:610 symfony 1.3/1.4 では、新しく作られたプロジェクトでプラグインを使うには `ProjectConfiguration` クラスで明示的に有効にしなければなりません: 611 611 612 612 [php] … … 644 644 ### `sf_file_link_format` 645 645 646 symfony 1.3/1.4 は可能であるときにファイルパスをクリック可能なリンク にフォーマットします (すなわちデバッグ例外のテンプレート)。`sf_file_link_format` がセットされる場合、この目的に使われ、そうでなければ、symfony は PHP コンフィギュレーションの `xdebug.file_link_format` の値を探します。646 symfony 1.3/1.4 は可能であるときにファイルパスをクリック可能なリンク (すなわちデバッグ例外のテンプレート) にフォーマットします。`sf_file_link_format` がセットされている場合、この目的に使われ、そうでなければ、symfony は PHP コンフィギュレーションの `xdebug.file_link_format` の値を探します。 647 647 648 648 たとえば、TextMate でファイルを開きたい場合、次のコードを `settings.yml` に追加します: … … 658 658 ----------------- 659 659 660 Doctrine は1.2にアップグレードされました。アップグレードに関する詳しい情報は [Doctrine の公式サイト](http://www.doctrine-project.org/documentation/1_2/ja)を訪問してくださるようお願いします。 661 660 662 ### フォームクラスを生成する 661 663 662 Doctrine は1.2にアップグレードされました。アップグレードに関する詳しい情報は [Doctrine のサイト](http://www.doctrine-project.org/documentation/1_2/ja)を訪問してくださるようお願いします。 663 664 ### フォームクラスを生成する 665 666 symfony の追加オプションを Doctrine の YAML スキーマファイルで指定することが可能になりました。そしてフォームとフィルタークラスの生成を無効にするいくつかのオプションも追加しました。 664 symfony の追加オプションを Doctrine の YAML スキーマファイルで指定できるようになりました。そしてフォームとフィルタークラスの生成を無効にするオプションもいくつか追加されました。 667 665 668 666 たとえば、 典型的な多対多のリファレンスモデルでは、フォームもしくはフィルターフォームクラスを生成させる必要はありません。ですので次のようなことができます: … … 683 681 ### フォームクラスの継承 684 682 685 あなたのモデルクラスからフォームを生成するとき、モデルクラスは継承を含んでいます。生成された子クラスは継承を尊重し、同じ継承構造に続くフォームを生成します。683 モデルクラスからフォームを生成するとき、モデルクラスは継承を含んでいます。生成された子クラスは継承を尊重し、同じ継承構造に続くフォームを生成します。 686 684 687 685 ### 新しいタスク … … 705 703 #### モデルファイルをクリーンにする 706 704 707 `doctrine:clean-model-files` タスクで上記プロセスを自動化しどのモデルがディスクに存在するが YAML スキーマファイルに存在しないかを見つけることができます。705 上記のプロセスを`doctrine:clean-model-files` タスクで自動化することで、どのモデルがディスクに存在するが YAML スキーマファイルに存在しないかを見つけることができます。 708 706 709 707 $ php symfony doctrine:clean-model-files 710 708 711 上記コマンドは YAML スキーマファイルと生成 されたモデルやファイルと比較し、どれを削除すべきかを決定します。これらのモデルは `doctrine:delete-model-files` タスクに伝えられます。タスクは自動的に削除する前にどのファイルが削除されるのか確認を求めます。709 上記コマンドは YAML スキーマファイルと生成モデルやファイルと比較し、どれを削除すべきかを決定します。これらのモデルは `doctrine:delete-model-files` タスクに伝えられます。タスクは自動的に削除する前にどのファイルが削除されるのか確認を求めます。 712 710 713 711 #### データをリロードする … … 730 728 新しい `doctrine:build` タスクによって明確に symfony や Doctrine にビルドしてほしいものを何でも指定できます。このより柔軟性のある解決方法に合わせて廃止予定になった既存の多くのタスクを組み合わせることで得られる機能をこのタスクを複製します。 731 729 732 `doctrine:build` の使い方は次の とおりです:730 `doctrine:build` の使い方は次の通りです: 733 731 734 732 $ php symfony doctrine:build --db --and-load … … 764 762 $ php symfony doctrine:generate-migration AddUserEmailColumn --editor-cmd=mate 765 763 766 この例 はマイグレーションクラスを生成し TextMate で新しいファイルを開いています。764 この例ではマイグレーションクラスを生成し TextMate で新しいファイルを開きます。 767 765 768 766 #### `doctrine:generate-migrations-diff` … … 784 782 ->format('m/d/Y'); 785 783 786 日付の値も `setDateTimeObject` メソッドを呼び出し有効な `DateTime` インスタンスを渡すだけでセットすることもできます。784 `setDateTimeObject` メソッドを呼び出し有効な `DateTime` インスタンスを渡すだけで日付の値もセットできます。 787 785 788 786 [php] … … 801 799 $ php symfony doctrine:migrate --dry-run 802 800 803 ### DQL タスクをテーブル のデータとして出力する804 805 これまでは `doctrine:sql` コマンドを実行するとただ YAML 書式で出力されるだけでした。新しい `--table` オプションが追加されました。このオプションによってデータをテーブル表示で出力することができるようなり、MySQL のコマンドラインの出力に似たものになっています。801 ### DQL タスクをテーブル形式のデータとして出力する 802 803 これまでは `doctrine:sql` コマンドを実行するとただ YAML 形式で出力されるだけでした。新しい `--table` オプションが追加されました。このオプションによってデータをテーブル表示で出力することができるようなり、MySQL のコマンドラインの出力に似たものになっています。 806 804 807 805 それで、次のようなことが可能になりました。 … … 818 816 (2 results) 819 817 820 ### クエリパラメータ を `doctrine:dql` に渡す821 822 `doctrine:dql` タスクもクエリパラメータ を引数として受け取れるよう強化されました:818 ### クエリパラメーターを `doctrine:dql` に渡す 819 820 `doctrine:dql` タスクもクエリパラメーターを引数として受け取れるよう強化されました: 823 821 824 822 $ php symfony doctrine:dql "FROM Article a WHERE name LIKE ?" John% … … 872 870 } 873 871 874 フォームフィルターのカスタマイズが簡単になりました。フィ ールドのフィルタリングを追加するには、必要なのはウィジェットとそれを処理するメソッドを追加することだけです。872 フォームフィルターのカスタマイズが簡単になりました。フィルタリングをフィールドに追加するには、必要なのはウィジェットとそれを処理するメソッドを追加することだけです。 875 873 876 874 [php] … … 896 894 ### Doctrine を設定する 897 895 898 Doctrine を設定するために `doctrine.configure` と `doctrine.configure_connection` イベントをリスニングできます。このことはプラグインが `sfDoctrinePlugin` の前で有効にされている 限り、プラグインから Doctrine のコンフィギュレーションを簡単にカスタマイズできることを意味します。896 Doctrine を設定するために `doctrine.configure` と `doctrine.configure_connection` イベントをリスニングできます。このことはプラグインが `sfDoctrinePlugin` の前で有効にされているかぎり、プラグインから Doctrine のコンフィギュレーションを簡単にカスタマイズできることを意味します。 899 897 900 898 ### `doctrine:generate-module`、`doctrine:generate-admin`、`doctrine:generate-admin-for-route` … … 902 900 `doctrine:generate-module`、`doctrine:generate-admin`、`doctrine:generate-admin-for-route` タスクは生成モジュールのアクション基底クラスのコンフィギュレーションを可能にする `--actions-base-class` オプションをとります。 903 901 904 ### マジックメソッドの doc タグ905 906 symfony が Doctrine モデルに追加するゲッターとセッターのマジックメソッドはそれぞれの生成基底クラスの PHPDoc ヘッダーに現れます。IDE がコード 補完をサポートする場合、これらの `getFooBar()` と `setFooBar()` メソッドがモデルオブジェクトに現れることがわかります。`FooBar` はキャメルケースのフィールド名です。902 ### マジックメソッドの PHPDoc タグ 903 904 symfony が Doctrine モデルに追加するゲッターとセッターのマジックメソッドはそれぞれの生成基底クラスの PHPDoc ヘッダーに現れます。IDE がコード入力補完をサポートする場合、これらの `getFooBar()` と `setFooBar()` メソッドがモデルオブジェクトに現れることがわかります。`FooBar` はキャメルケースのフィールド名です。 907 905 908 906 ### Doctrine の異なるバージョンを使う … … 930 928 `sfWebDebugPanel` パラメーターを URL につけ加えることでページロードで開くパネルを指定できるようになりました。たとえば、`?sfWebDebugPanel=config` を追加すれば config パネルを開くように Web デバッグツールバーはレンダリングされます。 931 929 932 パネルは Web デバッグ の `request_parameters` オプションにアクセスすることでリクエストパラメーターをインスペクトします:930 パネルは Web デバッグツールバーの `request_parameters` オプションにアクセスすることでリクエストパラメーターをインスペクトします: 933 931 934 932 [php] … … 940 938 ### スロットの改善 941 939 942 `get_slot()` と`include_slot()` ヘルパーはスロットが提供されない場合返すデフォルトのスロットの内容を指定するための2番目のパラメーターを受け取ります:943 944 [php] 945 <?php echo get_slot('foo', 'bar') // もし `foo`スロットが定義されていなければ 'bar'が出力される ?>946 <?php include_slot('foo', 'bar') // もし `foo`スロットが定義されていなければ 'bar'が出力される ?>940 `get_slot()` と `include_slot()` ヘルパーはスロットが提供されない場合、返すデフォルトのスロットの内容を指定するための 2 番目のパラメーターを受け取ります: 941 942 [php] 943 <?php echo get_slot('foo', 'bar') // もし `foo` スロットが定義されていなければ 'bar' が出力される ?> 944 <?php include_slot('foo', 'bar') // もし `foo` スロットが定義されていなければ 'bar' が出力される ?> 947 945 948 946 ページャー … … 966 964 ビューキャッシュマネージャーは `factories.yml` でパラメーターを受け取ります。ビューのキャッシュキーの生成はクラスを楽に拡張できるように異なる方法でリファクタリングされてきました。 967 965 968 ふたつのパラメーターが `factories.yml` で利用できます:966 2 つのパラメーターが `factories.yml` で利用できます: 969 967 970 968 * `cache_key_use_vary_headers` (デフォルト: true): キャッシュキーが Vary ヘッダーの一部を含むか指定します。実際には、`vary` キャッシュパラメーターで指定されるので、これはページキャッシュが HTTP ヘッダーに依存するかどうかを伝えます。 … … 995 993 ### `redirect()` 996 994 997 `sfAction:redirect()` メソッドは symfony 1.2 で導入された `url_for()` の 特徴と互換性を持つようになりました。995 `sfAction:redirect()` メソッドは symfony 1.2 で導入された `url_for()` の機能と互換性を持つようになりました。 998 996 999 997 [php] … … 1023 1021 ----------- 1024 1022 1025 `sfContext` にメソッドを動的に追加するために `context.method_not_found` をリスニングできます。プラグインから遅延ロードファクトリ ーを追加する場合に便利でしょう。1023 `sfContext` にメソッドを動的に追加するために `context.method_not_found` をリスニングできます。プラグインから遅延ロードファクトリを追加する場合に役立つでしょう。 1026 1024 1027 1025 [php] doc/branches/1.4/tutorial/ja/which-version.markdown
r25636 r27631 1 どちらのバージョンを選べば いいのか?1 どちらのバージョンを選べばよいのか? 2 2 ================================== 3 3 4 symfony 1.3 と symfony 1.4 のドキュメントはまったく同じものです。 ふたつの異なるバージョンでドキュメントがひとつしかない状況はめったにないことなので、このドキュメントではふたつのバージョンの主な違いが何であり、あなたのプロジェクトのために最良の選択をする方法を説明します。4 symfony 1.3 と symfony 1.4 のドキュメントはまったく同じものです。2 つの異なるバージョンでドキュメントが 1 つしかない状況はめったにないことなので、このドキュメントでは 2 つのバージョンの主な違いが何であり、あなたのプロジェクトのために最善の選択をする方法を説明します。 5 5 6 symfony 1.3 と symfony 1.4 は両方とも同じ時期 (2009 年年末) にリリースされ、実際のところ、これらは両方とも**まったく同じ機能一式**を持ちます。ふたつのバージョンの唯一の違いは古い symfony のバージョンとの後方互換性のサポートの状況です6 symfony 1.3 と symfony 1.4 は両方とも同じ時期 (2009 年の年末) にリリースされ、実際のところ、これらは両方とも**まったく同じ機能一式**を持ちます。2 つのバージョンの唯一の違いは symfony の古いバージョンとの後方互換性のサポート状況です。 7 7 8 symfony 1.3 は古い symfony のバージョン (1.0、1.1 もしくは1.2) を使うレガシープロジェクトをアップグレードする場合に使いたいリリースです。これは1.3の開発期間に廃止予定の後方互換性レイヤーとすべての機能を持ちます。このことはアップグレードが簡単で、シンプルで、安全でもあることを意味します。8 symfony 1.3 は古い symfony のバージョン (1.0、1.1 もしくは 1.2) を使うレガシープロジェクトをアップグレードする場合に使いたいリリースです。これは 1.3 の開発期間に廃止予定の後方互換性レイヤーとすべての機能を持ちます。このことはアップグレードが楽でシンプルであり、そして安全でもあることを意味します。 9 9 10 今日新しいプロジェクトを始めるのであれば、symfony 1.4 を使うべきです。このバージョンは symfony 1.3 と同じ機能セットを持ちますが、完全な互換性を含めて、すべての廃止 された機能が削除されています。このバージョンは symfony 1.3 よりもクリーンで少し速く動きます。 symfony 1.4 を使う別の大きな利点はより長いサポート期間です。長期間サポートリリースなので、symfony コアチームによって3年間メンテナンスされます (2012年11月まで)。10 今日新しいプロジェクトを始めるのであれば、symfony 1.4 を使うべきです。このバージョンは symfony 1.3 と同じ機能セットを持ちますが、完全な互換性を含めて、すべての廃止予定の機能が削除されています。このバージョンは symfony 1.3 よりもクリーンで少し速く動きます。symfony 1.4 を使う別の大きな利点はサポート期間がより長いことです。長期間サポートのリリースなので、symfony コアチームによって 3 年間メンテナンスされます (2012 年 11 月まで)。 11 11 12 もちろん、プロジェクトを symfony 1.3 にマイグレートして symfony 1.3 がサポートされる期間 (2010 年11月まで) に廃止予定の機能を削除してコードをゆっくりアップデートしてから長期サポートの恩恵を得るために最終的に symfony 1.4 に移行するための時間が十分にあります。12 もちろん、プロジェクトを symfony 1.3 にマイグレートして symfony 1.3 がサポートされる期間 (2010 年 11 月まで) に廃止予定の機能を削除してコードをゆっくりアップデートしてから長期サポートの恩恵を得るために最終的に symfony 1.4 に移行するための時間が十分にあります。 13 13 14 14 このドキュメントは廃止予定の機能を説明しないので、すべての例は両方のバージョンで等しく動きます。