プロジェクト構成
Ibexa DXP は Symfony アプリケーションであり、Symfony で使用されるプロジェクト構造に従っています。
Ibexa Experience Beginner チュートリアルのコンパニオンリポジトリで、簡単なプロジェクトを編成する例を見ることができます。
PHP コード
プロジェクトの PHP コード(コントローラ、イベントリスナーなど)は、src フォルダに配置する必要があります。
再利用可能なライブラリは、Composer で簡単に管理できるようにパッケージ化する必要があります。
テンプレート
プロジェクトのテンプレートは templates フォルダに入れる必要があります。
例えば templates/full/article.html.twig は Twig テンプレートや PHP で full/article.html.twig として参照することができます。
アセット
プロジェクトのアセットは assets フォルダに入れる必要があります。
例えば、 assets/js/script.js はテンプレートから js/script.js として参照することができるように、ルートからの相対参照とすることができます。
すべてのプロジェクトのアセットは、assets パスを通してアクセスできます。
assets の手動削除
assets フォルダを手動で削除することがあれば、 yarn encore <dev|prod> コマンドを実行する前にトランスレーションをダンプする必要があります。
php bin/console bazinga:js-translation:dump assets --merge-domains
設定
プロジェクトの設定は、 config/packages 内のそれぞれのファイルに配置されます。詳しくは Configuration をご覧ください。
プロジェクトの構成は、のそれぞれのファイルに配置されますconfig/packages。詳細については、構成を参照してください。
バンドルからの設定のインポート
あなたのコードの一部をバンドルで保持している場合、メインの config/packages/ibexa.yaml 設定ファイルで保守すると、コアバンドル意味設定の取り扱いが面倒になります。
Symfony のチュートリアル How to Import Configuration Files/Resources に従って、バンドルから設定をインポートすることができます。
プロジェクトのバージョン管理
推奨される方法は、プロジェクトのリポジトリ全体をバージョン管理することです。
アーキテクチャ
Ibexa DXP のアーキテクチャは、長期的にメンテナンスされる API を使用するという哲学に基づいています。これにより、アップグレードが容易になり、アーキテクチャのすべての部分間のロスレス結合が実現されると同時に、システムの移行機能が向上します。

Ibexa DXP のアーキテクチャはレイヤー化されており、レイヤー間で明確に定義された API を使用しています。
バンドル
Symfony (および Ibexa DXP) のバンドルは、機能を実装するアプリケーションの独立した部分です。自分でバンドルを作成するか、利用可能なオープンソースのバンドルを利用することができます。また、作成したバンドルを他のプロジェクトで再利用したり、コミュニティで共有したりすることもできます。
Ibexa DXP の多くの機能は、インストールに含まれる個別のバンドルを通じて提供されます。Ibexa DXP と共に自動的にインストールされるバンドルは、それぞれの composer.json ファイルで確認することができます。例えば Ibexa Content について、GitHub にある JSON ファイルを参照してください。
バンドルを機能させる
Ibexa DXP のビルトイン機能を含むすべてのバンドルは自動的にインストールされます。さらに、コミュニティが開発したバンドルは、Ibexa DXP パッケージからインストールできます。
独自のバンドルを作成する方法については、バンドルに関する Symfony ドキュメントを参照してください。
サードパーティーバンドルに上書き
外部バンドルを利用する場合、テンプレートやコントローラなどの部分をオーバーライドすることができます。これを行うには、Symfony のバンドルオーバーライドメカニズムを利用します。ファイルをオーバーライドするとき、アプリケーション内のパスはバンドル内のパスに対応しなければならないことに注意してください。
バンドルの削除
バンドル(自分で作成したもの、または不要な既成のもの)を削除するには、Symfony ドキュメントの How to Remove a Bundle を参照してください。
コアパッケージ
| バンドル | 説明 |
|---|---|
| ibexa/support-tools | システム情報 |
| ibexa/admin-ui-assets | 管理画面のアセット |
| ibexa/admin-ui | 管理画面インターフェース |
| ibexa/content-forms | カーネルの Content および User オブジェクトへの Symfony Forms のフォームベースの統合 |
| ibexa/core-extensions | システムの中核機能 |
| ibexa/cron |
ibexa:cron:run コマンドで使用するための Cron パッケージ |
| ibexa/design-engine | デザインフォールバックシステム |
| ibexa/graphql | GraphQL server for Ibexa DXP |
| ibexa/http-cache | HTTP cache handling, using multi tagging |
| ibexa/core | Ibexa DXP アプリケーションのコア部分 |
| ibexa/matrix-fieldtype | Matrix のフィールドタイプ |
| ibexa/query-fieldtype | Query のフィールドタイプ |
| ibexa/rest | REST API |
| ibexa/richtext | 構造化された XML 形式で保存されたリッチフォーマットテキストをサポートするためのフィールドタイプ |
| ibexa/search | 共通の検索機能 |
| ibexa/solr-search-engine | Solr 搭載の検索ハンドラ |
| ibexa/standard-design | デザインエンジンによって処理される標準デザインおよびテーマ |
| ibexa/user | ユーザー管理 |