このドキュメントでは、Symfony2 PRの特定のバージョンから1つ次のバージョンへアップデートする方法を説明します。 このドキュメントでは、フレームワークの "パブリックな" APIを使っている場合に必要な変更点についてのみ説明しています。 フレームワークのコアコードを "ハック" している場合は、変更履歴を注意深く追跡する必要があるでしょう。
- エクステンションのコンフィギュレーションクラスには、\
Symfony\Component\Config\Definition\ConfigurationInterface\ インターフェイスを実装する必要があります。この部分の後方互換性は維持されていますが、今後の開発のために、エクステンションにこのインターフェイスを実装しておいてください。
-
バンドルの論理名には、再び
Bundleサフィックスを付けるように修正されました:コントローラ:
Blog:Post:show->BlogBundle:Post:showテンプレート:
Blog:Post:show.html.twig->BlogBundle:Post:show.html.twigリソース:
@Blog/Resources/config/blog.xml->@BlogBundle/Resources/config/blog.xmlDoctrine:
$em->find('Blog:Post', $id)->$em->find('BlogBundle:Post', $id) -
ZendBundleはMonologBundleに置き換えられました。 これに関するプロジェクトのアップデート方法は、Symfony Standard Edition の変更点を参考にしてください: https://github.com/symfony/symfony-standard/pull/30/files -
コアバンドルのパラメータは、ほぼすべて削除されました。 代わりにバンドルのエクステンションの設定で公開されている設定を使うようにしてください。
-
一貫性のために、いくつかのコアバンドルのサービス名が変更されました。
-
バリデータの名前空間が
validationからassertへ変更されました(PR9向けにアナウンスされていましたが、PR10での変更となりました):変更前:
@validation:NotNull変更後:
@assert:NotNullさらに、いくつかの制約で使われていた
Assertプレフィックスは削除されました(AssertTrueからTrueへ変更) -
ApplicationTester::getDisplay()とCommandTester::getDisplay()メソッドは、コマンドの終了コードを返すようになりました
-
Symfony\Bundle\FrameworkBundle\Util\Filesystemは、Symfony\Component\HttpKernel\Util\Filesystemへ移動されました -
Execute制約は、Callback制約に名前が変更されました -
HTTPの例外クラスのシグニチャが変更されました:
変更前:
throw new NotFoundHttpException('Not Found', $message, 0, $e);変更後:
throw new NotFoundHttpException($message, $e); -
RequestMatcher クラスでは、正規表現に
^と$が自動的には追加されなくなりましたこの変更によって、セキュリティの設定をたとえば次のように変更する必要があります:
変更前:
pattern: /_profiler.* pattern: /login変更後:
pattern: ^/_profiler pattern: ^/login$ -
app/ディレクトリ以下のグローバルテンプレートの位置が変更されました(古いディレクトリでは動作しなくなります):変更前:
app/views/base.html.twig app/views/AcmeDemoBundle/base.html.twig変更後:
app/Resources/views/base.html.twig app/Resources/AcmeDemo/views/base.html.twig -
バンドルの論理名に、
Bundleサフィックスをつける必要がなくなりました:コントローラ:
BlogBundle:Post:show->Blog:Post:showテンプレート:
BlogBundle:Post:show.html.twig->Blog:Post:show.html.twigリソース:
@BlogBundle/Resources/config/blog.xml->@Blog/Resources/config/blog.xmlDoctrine:
$em->find('BlogBundle:Post', $id)->$em->find('Blog:Post', $id) -
Asseticのフィルターは明示的にロードする必要があります:
assetic: filters: cssrewrite: ~ yui_css: jar: "/path/to/yuicompressor.jar" my_filter: resource: "%kernel.root_dir%/config/my_filter.xml" foo: bar