問題タブ [servicemanager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - Zend Framework 2 のどの部分をカスタム クラスに簡単に置き換えることができますか?
Zend Framework 2 は、フレームワークで提供される代わりにカスタム クラスを使用する可能性を提供しますinvokables
。例ViewHelper
:
したがって、すべてinvocable
の s (特にViewHelper
s) を置き換えることができます。ほかに何か?/invokables
を使用してカスタムクラスに置き換えることができるクラスのタイプのリストはありますか?ServiceManager
EventManager
zend-framework2 - Zend Framework 2 でフォーム フィールドセットのサービスを使用するには?
Zend\Form\Form
ネストされたフィールドセット ( ) を含むフォーム ( )Zend\Form\Fieldset
があります。構成は、フォーム コレクション チュートリアルの構成と非常によく似ています。
MyForm
FooFieldset
動作しますが、fieldset クラスには 2 つの依存関係があります。注射したい。それを行うために、私は を作成し、byFooFieldsetFactory
を拡張し/module/MyModule/config/module.config.php
ました:
工場は単に無視されています。サービスロケーターは最初に名前空間でクラスを見つけようとし、何も見つからない場合にのみ and を調べinvokables
ますfactories
。わかった。次に、エイリアスを作成しました。
Storage\Form\Fieldset\FooFieldset
...そして、フォームクラスの代わりに使用しようとしました。しかし今、私は例外を受け取ります:
Zend\Form\FormElementManager::get は Storage\Form\Fieldset\Foo のインスタンスを取得または作成できませんでした
私もこれを直接試しました:
効果なし、同じエラー。
そして、これも機能しませんでした (同じエラー):
したがって、フィールドセットのサービスの参照は機能しないようです。それとも私は何か間違ったことをしていますか?
フォームフィールドセットのサービスを使用するには?
アップデート
いくつかのデバッグで、Foo
フィールドセット ファクトリが のfactories
リストに追加されていないため、見つからないことがわかりましたZend\Form\FormElementManager
。の場所は次のZend\Form\Factory
とおりです。
だから私の設定
は無視されます。これを修正する方法は?
UPDATE追加情報、Form
オブジェクトの作成方法。
/module/Foo/config/module.config.php
/module/Foo/src/Foo/Form/Factory/MyFormFactory.php
/module/Foo/src/Foo/Controller/Factory/MyControllerFactory.php
zend-framework2 - 呼び出し可能なサービスの構造に動的データを渡す
アプリケーション構成に次のinvokables
設定があります
だから理論は私が呼び出すことができるということです:
$userMdl = $e->getApplication()->getServiceManager()->get('DbModel\User');
結果は class のインスタンスになりますApplication\DbModel\UserModel
。OKこれは素晴らしいです。私の質問は次のとおりです。
私のユーザー モデルでは__construct
、モデルにデータベース データをロードするために、IDの整数を に渡す必要があります。
明らかに、ID を渡す機会がないため、モデルを呼び出し可能なものとしてこれを行うことはできません。
supply an argument such as a user id for my situation
オブジェクトのインスタンス化で使用できるファクトリを作成する方法はありますか。
An example would be using it in a controller to get a model based on a get request for a user based on id
php - ZF3 - ファクトリのモジュール クラスでパラメータを指定して関数を呼び出す
私は ZendFramework3 の初心者であり、ファクトリ (モジュール クラス内) の serviceManager よりも多くの引数を使用して関数を呼び出すことができるかどうかを知りたいだけです: (引数の隣に引数を渡すことは可能$sm
ですか?)