以前に Zikula モジュールでこれを行ったことがありますが、何かを忘れているに違いありません。私が覚えているように、フォームにサービスを提供したい場合は、3 つのステップを実行する必要があります。
まず、モジュールに DependencyInjection というフォルダーを作成します。その中に、YAML ローダーを使用して YAML ファイルをロードする php クラスを作成します。そのためのコードは次のとおりです。
class PaustianPMCIModuleExtension extends Extension
{
public function load(array $configs, ContainerBuilder $container)
{
$loader = new YamlFileLoader($container, new FileLocator(realpath(__DIR__ . '/../Resources/config')));
$loader->load('services.yml');
}
}
2 番目に、モジュールの Resources/config/ フォルダーに services.yml ファイルを作成します。3 番目に、その services.yml ファイルに、サービスを構成するための yml を含めます。そのファイルは次のとおりです。
services:
paustian_pmci_module.container.link_container:
class: Paustian\PMCIModule\Container\LinkContainer
arguments: ["@translator.default", "@jms_i18n_routing.router", "@zikula_permissions_module.api.permission"]
tags:
- { name: zikula.link_container }
paustian_pmci_module.person_type:
class: Paustian\PMCIModule\Form\Person
arguments: ["@translator.default"]
tags:
- { name: form.type }
現在、PaustianPMCIModuleExtension クラスの load 関数はまったく呼び出されていません。すべてのリロードを強制するためにキャッチをクリアしました。何かばかげたことを見逃していることはわかっていますが、それを見ることができないようです。