コンポーザーにおけるブロックの挙動について

2016年7月21日 at 20:27

みなさん、こんにちは

いつもお世話になっております。

タイトルの件につきまして、以下の2点について確認させていただきたいです。

①.コンポーザーでページを作成する際、ページタイプに設定されたブロックにおけるcontroller.phpのsave()が呼び出され、ブロックのdb.xmlに設定されたDBのテーブルにデータが書き込まれる、という認識で正しいかどうか

②.①の方法で作成したページを削除する際、ページタイプに設定されたブロックにおける、db.xmlで設定されたDBのテーブルからデータが削除される、という認識で正しいかどうか


ちなみに以下の環境でサイトを構築しております。

自作サーバー:CentOS 6.7
PHPバージョン: 7.0.2
concrete5バージョン: 5.7.5.8

タグ:

Re: コンポーザーにおけるブロックの挙動について

2016年8月17日 at 22:45
返信遅れました。

> ①.コンポーザーでページを作成する際、ページタイプに設定されたブロックにおけるcontroller.phpのsave()が呼び出され、ブロックのdb.xmlに設定されたDBのテーブルにデータが書き込まれる、という認識で正しいかどうか

ちょっと違います。

concrete5 はページの中にコンクリートブロックを積み重ねるように設置していきます。
ページの情報にはどのブロックがどの順番で並んでいるかのみが保存されます。

なので「ページタイプに設定された」という表現が違和感があります。

また、「コンポーザーでページを作成する際」という表現もちょっと違います。

コンポーザーでも普通の編集画面でもブロックが追加された場合、ブロックの DB テーブルに新しいブロックの情報が書き込まれます。

また、db.xml が存在しない時もあります。そもそもブロック自体にデータを保存する必要が無い場合や、 Doctrine ORM でDBテーブルの構造を指定する方法もあるからです。

> ②.①の方法で作成したページを削除する際、ページタイプに設定されたブロックにおける、
> db.xmlで設定されたDBのテーブルからデータが削除される、という認識で正しいかどうか

なので、上記も表現に違和感があります。

ちょっとざっくりと、端折った説明になるのですが、
ページの削除というよりもブロックの追加・複製・削除のレベルで考えられると良いと思います。