私は質問を策定する方法がわからないので、自由に編集してください。ZF2 Doctrine - 特定のIDを必要とする依存性注入を処理する方法
現在の状況は次のとおりです。 私はフォームクラスをインスタンス化するファクトリクラスを持っています。依存性注入(DI)は、コンストラクタインジェクションを介して行われます。私の問題は、このフォーム要素にfindbyメソッドが必要なDoctrine ObjectMultiCheckboxがあることです。このfindbyメソッドでは、特定のエンティティのIDが必要ですが、IDをファクトリクラスを介してフォームに渡すことはできません。
私の質問は、どうやってこの状況に対処できますか?最善のアプローチは何ですか?
class CustomerFormFactory implements FactoryInterface
{
/**
* Create service
*
* @param ServiceLocatorInterface $serviceLocator
* @return Form
*/
public function createService(ServiceLocatorInterface $serviceLocator)
{
$em = $serviceLocator->get('Doctrine\ORM\EntityManager');
return new CustomerForm($em);
}
}
そして、私はこのようなサービスロケータを経由してフォームを取得:
のは、これが私のファクトリクラスであるとしましょう
$customerForm = $this->getServiceLocator()->get('CustomerForm');
にはどうすればサービスロケータにIDを渡すことができますか?フォーム要素に特定のIDが必要な場合は、DIとサービスの目的を壊しませんか?私はこのように自分で「古典的」な方法のために行くとフォーム要素をインスタンス化する必要があります
$customerForm = new CustomerForm(EntityManager $em, int $id);
私は本当に私が何をすべきかわからないか、何これを処理するための最良の方法です。
素晴らしい回答!ありがとうございました :) – Sepultura