0

私の TYPO3 拡張機能では、外部テーブルを使用しています。拡張機能が必要とする方法で、このテーブルのデータを提供する 2 つのビューを作成しました。

問題は、インストール時にこれらのビューをどのように作成できるかということです。

「 ext_tables.sql 」で定義されたビューは、インストール ルーチンによって無視されます。

ファイル「ext_tables_static+adt.sql」を使用しようとしました。このバリアントは、INSERTステートメントに対してのみ機能します。

私が働かなければならない唯一のことは、シグナルスロットディスパッチャーを使用してここで説明されているバリアントです(複雑に聞こえますが、実際にはそうではありません! 提供されたドキュメントは非常に優れています)。

ext_tables.sqlしかし、そのような問題を解決するためのネイティブな方法 (のような) がないとは信じられません。

4

1 に答える 1

1

私は少し前にこの問題についていくつかの調査を行いました。当時、あなたが望むものを達成する方法は他にありませんでした.その間に新しい方法が進化したとは思えません.

  • あなたが言及したフックを使用することになりConfiguration/SQL/*.sql、拡張機能からすべてを読み取って実行しました。
  • CREATE TABLE実行時に SQL スキーマを変更する方法はありますが、通常の(疑似) ステートメントに限定されます。これにはsignal TYPO3\CMS\Install\Service\SqlExpectedSchemaService-tablesDefinitionIsBeingBuiltを使用します。TYPO3コアで 使用されていますTYPO3\CMS\Core\Category\CategoryRegistry::addCategoryDatabaseSchemaToTablesDefinition
  • おそらく、TYPO3 のdoctrine/dbalへの切り替えが状況を変えるでしょう。ご覧のとおり、移行が進行中です…</li>

インストール ツールのデータベース アナライザーにユーザーのビューを教える方法がないことに注意してください。

于 2016-08-08T00:06:47.133 に答える