ビューデザイナー
Doggy ビューデザイナーはビジュアルなページレイアウトツールで、ドラッグ&ドロップ設計、データソースバインド、リアルタイムプレビュー、AI 拡張、バージョン管理をサポートします。
概要
ビューシステムは以下のエンティティに基づいて構築されます(src/Entity/Platform/):
View.php: ビュー定義(レイアウト設定、データソース、バージョン情報)ViewField.php: ビュー内の各フィールドの設定
管理の入口は App\Controller\Admin\Platform\ViewEditorController、API の入口は ViewEditorApiController です。
ビュー構造
View
├── 布局配置(栅格行/列)
├── 字段绑定(ViewField)
│ ├── 数据表格
│ ├── 表单
│ ├── 统计卡片
│ └── 文本内容
├── 数据源配置
└── 版本目录(1_0/, 2_0/...)使用方法
- ローコードプラットフォーム → ビュー管理(
/admin/platform/view)に入る - 新規ビューをクリック
- ビューレイアウトを編集(
editor.html.twig) - コンポーネントの属性とデータソースを設定
- 効果をプレビュー(
editor_section_properties.html.twig) - 保存して公開
AI 拡張
ビューエディタは AI アシスタント と深く統合されています:
- フローティング AI パネル: すべてのページの右下にあるフローティングボタンで開く
- コンテキスト登録: エディタは自動的に
view_editorコンテキストを登録 - 自然言語操作: "このテキストを見出しスタイルに変更"
- ツール呼び出し:
view.getInfo、view.updateSectionConfig、view.updateFieldConfig、view.listEntityFields - 意図認識 + 子 Agent: ワンクリックでフォーム/レポート/ランディングページなどのシナリオビューを生成(AI ビュー拡張 を参照)
さらに Tailwind CSS レイアウトアシスト(Twind ランタイムベース)をサポート:
- クイックレイアウト: flex/grid/スペーシング/幅高さなどの utility class
- 既存の inline style と共存し、互いに干渉しない
- 本番フロントエンドはオンデマンドで読み込み、ビルドステップ不要
データソースバインド
ビューデータソースは DataSource.php エンティティで設定され、以下をサポート:
- エンティティデータソース: 動的モデルのデータをバインド
- API データソース: カスタム API を呼び出し
- 静的データソース: 固定データ
コード生成
ビューを保存すると、システムは対応する Twig テンプレートファイルを templates/views/ ディレクトリに生成します:
templates/views/
├── hello/
│ └── 1_0/
│ ├── hello.html.twig
│ └── hello.design.twig
└── 组织架构/
└── post_management/
└── 1_0/
├── post_management.html.twig
└── post_management.design.twig生成されたテンプレートは直接利用するか、二次開発できます。
バージョン管理
ビューはマルチバージョン管理をサポートします(各バージョンは独立した一連の twig ファイルに対応):
- バージョン切り替え: あるバージョンを現行バージョンとしてアクティベート
- 新バージョン追加: 現行バージョンからコピーするか、空のバージョンを新規作成
- ビューを削除するとゴミ箱に入る(復元可能)
- エディタはバージョン単位で動作し、
?version=...を明示的に指定可能
関連サービス
FormFieldBuilderService.php: フォームフィールド構築ViewFolderType.php、ViewType.php: フォームタイプ定義AiChatController.php: AI 対話インターフェースViewAiTaskApiController.php: AI 拡張タスクインターフェース