問題タブ [zend-framework3]
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 - ZF2 /ZF3URLビューヘルパーにクエリパラメータを追加するにはどうすればよいですか
次のように、ルートを使用してクエリ文字列を使用してURLを作成しようとしています。
ただし、これは機能していないようです(2番目のヘルパーが実際に出力します/users
)。この非公式の古いドキュメントによると、ルート名に追加することでこれを行う方法がかつてありましたが、これにより/query
ルートが見つからないという例外が発生します。
これは、現在のURLヘルパーを使用して実行できますか?
php - Zend Framework 2 アプリで zend-servicemanager バージョン 3 を使用する
Zend Framework はコンポーネントごとにバージョン 3 にアップグレードされます。最も重要なコンポーネントの新しいバージョンは安定しています: zend-servicemanager v3
問題は、「古い」ZF アプリケーション バージョン 2 で新しいzend-servicemanager v3を使用する方法です。
使用方法と zend-servicemanager v3 の新機能を説明する移行ガイドはありますが、新しいコンポーネントのインストール ガイドはありません。
php - ZF2 非推奨: ServiceManagerAwareInterface
今日、プロジェクトを更新したところ、次の警告が表示されました。
非推奨: ServiceManagerAwareInterface は非推奨であり、ServiceManagerAwareInitializer と共にバージョン 3.0 で削除されます。クラス X を更新して実装を削除し、代わりにファクトリ経由で依存関係の注入を開始してください
これらの基本クラスを拡張する複数のクラスBase
を実装するいくつかのメインクラスがあります。ServiceManagerAwareInterface
では、これらのクラスごとに追加のファクトリ クラスを作成することをお勧めしますか? それとも、モジュールごとに1 つの AbstractFactoryを使用して、そこでクラスを開始する方がよいでしょうか?
AbstractFactory を使用した用量はパフォーマンスに影響しますか?
多くのクラスで 1 つ (または 2 つ) の共有依存関係を注入するためのベスト プラクティスは何ですか?
更新: @AlexP の回答を受け入れたとしても、依存関係スロー コンストラクターを提供することについて懸念があります。このシナリオを想像してみてください。いくつかのアクションを持つコントローラーがあります。たとえば、ActionA には ServiceZ が必要で、ActionB には ServiceY と ServiceX が必要であり、ServiceX も ServiceM と ServiceN に依存しています。今、ActionAを呼び出すたびに、これらすべてのサービスで開始されたコントローラーですが、ActionAはコントローラーに5つのサービスがロードされている1つのサービスしか必要としません....これは良い習慣ですか?これは正しい方法ですか?リクエストごとに、そのリクエスト中にまったく使用しないサービスが開始されるため、これはパフォーマンスが低下しませんか?
現在、各サービス/コントローラーが独自のニーズを処理し、必要なときにサービスをロードできるようにしています。
このようにして、使用しない複数のサービスを開始する必要がなくなり、それらを使用するためにサービスの依存関係を知る必要がなくなります。これがベストプラクティスとして受け入れられていないことはわかっていますが、コードはクリーンであり、パフォーマンスを向上させるために「ベストプラクティス」を犠牲にすることを好みます.
これに関する誰かの意見に感謝します。
zend-framework2 - ZF3 で遅延読み込みを設定するにはどうすればよいですか (どこからでも ServiceLocator パターンはありません)
新しい ZF2 アプリを作成しています。「どこからでも」サービスを呼び出す ServiceLocator の使用パターンが ZF3 から非推奨になっていることに気付きました。ZF3向けのコードを書きたいと思っています。
コンストラクター時にすべての依存関係を呼び出すようにコントローラーを設定することができました。しかし、それはつまり、Doctrine
必要になる前にオブジェクトをロードすることを意味します。
質問
すぐに必要なときにのみ読み込まれるように設定するにはどうすればよいですか? (遅延ロード)。ZF3 はロードをコントローラーの構造に移行することを理解しています。
古いコード
ServiceLocator パターンのリファクタリング後の現在のコード
php - ビューで一致するルート名を取得する方法 - Zend Expressive
ルート名を渡す URL を生成できることを知っています
しかし、逆方向に情報を取得できますか? 現在の URL/URI から、ルート名を取得する必要があります。
実際のケース: トップ メニュー (html) である layout.phtml があります。メニューの現在のリンクは、css クラスでマークする必要があります。したがって、私が必要とする例は次のとおりです。
私は高速ルートを使用していますが、どのソリューションにも興味があります。ソリューションはビュー ファイルにある必要はありません。