2番目のSymfonyでは、Doctrineの拡張機能を使用してビヘイビアをモデルに接続できます。 1つのバンドル
StofDoctrineExtensionsBundleを使用すると、
Sluggable 、
Translatable 、
Timestampable 、
Loggable、および
Treeの動作を使用できます。
上記の拡張機能により、通常のリンクを読み取り可能(スラグ可能)に変換し、国際化(翻訳可能)の簡単なサポートを提供し、バージョン管理(ログ可能)を作成し、エンティティの作成および更新の日付を作成して自動的に入力(タイムスタンプ可能)し、ツリーのようなデータストレージ構造(ツリー)を整理できます。
設置
最初に行うことは、Doctrine拡張機能とそのバンドルをSymfonyにインストールすることです。 次の行を
depsファイルに追加します。
[gedmo-doctrine-extensions] git=git://github.com/l3pp4rd/DoctrineExtensions.git [DoctrineExtensionsBundle] git=git://github.com/stof/StofDoctrineExtensionsBundle.git target=/bundles/Stof/DoctrineExtensionsBundle
設置
$ bin/vendors install
ベンダーのインストールで問題が発生した場合は、
ベンダーディレクトリからすべてを削除して、もう一度やり直してください。
次の行を
app / autoload.phpに追加します。
$loader->registerNamespaces(array(
また、インストールしたパッケージを
app / AppKernel.phpに追加します。
public function registerBundles() { return array(
その後、
app / config / config.yml設定に書き込みます (リスナーの追加、利用可能な
StofDoctrineExtensionsリスナーに関する追加情報):
#... doctrine: orm: auto_mapping: true stof_doctrine_extensions: orm: default: sluggable: true timestampable: true #...
キャッシュを消去することを忘れないでください:
$ php app/console cache:clear
使用する
例としてSlugableとTimestampableの使用を検討してください。
<?php namespace Entity; use Gedmo\Mapping\Annotation as Gedmo;
Doctrineはあなたのために残りを生成します:
$ app/console doctrine:generate:entities
Sluggable 、
Translatable 、
Timestampable 、
Loggable 、
Treeを使用する他の例も見ることができます。
翻訳者のメモ
翻訳は単語ごとではありませんが、意味は完全に伝えられています。 また、この記事にはちょっとしたギャグがありますが、非常に便利なようです。
組み合わせたフォームとデフォルトも参照してください。