問題タブ [pimple]
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 - にきび依存性注入静的またはオブジェクト
にきびは、アプリケーション全体で同じオブジェクトを再利用し、依存関係を管理するのに役立ちます。
しかし、にきび自体を管理する方法は?
グローバル オブジェクトを作成する必要がありますか? それとも静的クラスにしますか?それとも関数を使用しますか?
コントローラー、モデル、プラグインなど、どこからでも Pimple メソッドにアクセスしたい...
ありがとう!!
php - Pimple Dependency Injection Containerを使用したPHP遅延読み込み?
最近、私はニキビを(サイレックスと一緒に)使い始めました。Pimple の使用方法に応じて、Service Locator または Dependency Injection Container のいずれかになります。Service Locator パターンを避けるべき理由を認識しています。それにもかかわらず、私を悩ませているように見えることの 1 つは、依存関係インスタンスが作成される瞬間です。
依存性注入の場合、必要なクラスのインスタンスが作成され、コンストラクターに渡されます。
コンテナー自体をクラス コンストラクターに渡す場合、依存インスタンスは必要になるまで作成する必要はありません。
その結果、Foo クラスの 2 つのメソッドのうちの 1 つだけを呼び出す場合でも、最初の例では両方の依存インスタンスが作成されます。このコードは非常に単純な例ですが、より多くの依存構造を持つより複雑なクラスの場合、問題が大きくなると予想されます。他のいくつかの Dependency Injection Containers がプロキシ クラスを使用していることに気付きましたが、このライブラリには何も見つかりませんでした。Pimple を使用して依存関係を遅延ロードするより良い方法はありますか?
php - カスタムmvcフレームワークににきびを統合する方法は?
フレームワークのような基本的な mvc があり、依存性注入に pimple を使用したいのですが、フレームワーク内で使用する方法がわかりません。これが私のアプリ構造です。
さて、homeController.php
私は Pimple を使用したいと思いますがnew Pimple
、この例に見られるように実際には行いません.
この例に見られるように、すべてのコントローラーで pimple クラスを初期化するのは非常に面倒な作業になります。これはどのように正しく行われますか?
php - Silex サービス - $app パラメータまたは "use ($app)" ステートメント?
Silex アプリケーションでサービスを定義する場合、メイン コンテナー (アプリケーション) がパラメーターとして渡されることを期待するか、"use ($app)" ステートメントを使用して現在のスコープから取得することができます。
http://silex.sensiolabs.org/doc/services.htmlの公式ドキュメントには、次のスニペットがあります。
しかし、それは次のように同じように書くことができます
私はそのようなコードの例をたくさん見てきました。それは単なる個人的な好みですか、それともパフォーマンス、メモリ使用量、コードの分離など、どちらかが他のものより優れているのでしょうか?
編集: 「使用」とパラメーターと単純な関数のパフォーマンス比較を実行しました:
最初のものは最も遅いですが、全体の差は 25% 未満です。また、あらゆるマイクロ最適化と同様に、これが数万回行われた場合にのみ顕著になります。これは、最も速いものと最も遅いものの時間差が約 1/10,000,000 秒 (100 万回の反復で 0.05 秒) であるためです。
したがって、パフォーマンスの違いは考慮しないでください。
php - パラメータを Pimple->container->factory に渡します
だから私は基本的にこれをしたい:
$parameter_1
と$parameter_2
は、次のように呼び出しから渡されます。
上記の構文が正しくないことはわかっていますが、これらの文字列を への呼び出しに渡したいと思います$this->container->factory
。
これは可能ですか?
たとえば、コントローラー関数ごとに異なるパラメーターを使用して、さまざまなコントローラー関数から Menu_builder をインスタンス化する必要があるとします。
php - Pimpl は常に配列として返されます
私はこの特性を持っています
このコードを使用しています(App
クラスを介して)
私が見ているのは、最初のvar_dump
結果がarray
であり、2 番目の結果が のインスタンスであることPimple\Container
です。
私はそれらが両方とも同じインスタンスであることを期待していました。誰かがここで何が起こっているのか教えてもらえますか?
php - Laravel 外部の Laravel IC
Eloquent を ORM として使用する新しい CLI PHP プロジェクトの基礎として、このリポジトリを使用しています。
新しい Eloquent を作成すると、コードのどこからでも DB カプセルにアクセスできるようにするcapsule
オプションがあります。setAsGlobal
それはLaravelコンテナが使用されているということですか?それとも、これは DB オブジェクトに影響しているだけですか?
私は pimple をコンテナーとして使用していましたが、Laravel に Eloquent を介してバインドできるコンテナーが既にある場合は、はるかに簡単になります。ログ ライター、Eloquent カプセル、およびおそらく設定オブジェクトをバインドします。どこからでもアクセスできるグローバルコンテナ。
php - Pimpl を使用してフレームワーク コントローラーの依存関係を定義する
したがって、次のように Pimple との依存関係を追加したコントローラーがあります。
そして、このコントローラーのアクションの URL に移動すると、次のように表示されます。
依存関係のあるクラスをロードするには、通常次のように言います。
しかし、フレームワークコントローラーの場合、この呼び出しをどこに置くべきかわかりません。
コントローラーは次のようになります。
質問: ここで何が間違っていますか? 上記は、コントローラー以外のクラスを返す場合に正常に機能します。