問題タブ [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.
silex - SilexPimpleサービスの実装
Silexアプリ内には、基本的にfile_get_contents()を実行する関数が必要です。私のアイデアは次のようなものを使用することでした。
これは正常に機能していますが、この関数にパラメーターを渡すにはどうすればよいですか?私はそれをこのように呼ぶことができます
しかし、それに引数を渡すことはまだ私の困惑しています
php - Silex アプリケーションでサードパーティの依存関係を共有するためのベスト プラクティスは?
新しい Silex プロジェクトを始めたばかりです。Cartalyst Sentry 認証パッケージを使用しており、コントローラー サービス コントローラーに挿入したいと考えています。これは、Pimple を拡張する Silex の組み込み依存関係コンテナーを使用する私の試みです。私が物事を正しい方法で行っているかどうか、および何を改善できるかについてのフィードバックが欲しいだけです.
コントローラーの定義:
これが私のコントローラーです。 app['sentry'] は、コンストラクターに注入することでコントローラーで使用できることに注意してください。
php - PHP にきびの相互依存関係
互いに依存する2つのクラスがあります:
そして、次のように Pimple でそれらをラップする必要があります。
しかし、残念ながら私はサイクリングをしています:
サイクリングせずにこの相互依存関係に到達する方法はありますか? または、一方向の依存関係のみを使用できますか?
php - にきびPHPソースコードを理解する
Pimple は、silex フレームワークで使用される php の単純な依存性注入コンテナーです。ここでソースコードを調べていました。ドキュメントでは、関数offsetGet
は依存関係コンテナーにアタッチされているクラスの同じインスタンスを返します。関連するコードoffsetGet
は次のとおりです。
ここで、オブジェクトがfactories
Object Store( SplObjectStorage
type) にある場合、id $id を持つクラスの新しいインスタンスを返します。次に、最後のリターンで再び$this->values[$id]
オブジェクトの新しいインスタンスに設定され、その新しいインスタンスが返されます。
return $this->values[$id] = $this->values[$id]($this)
.
これは私が理解できない行です。この行はoffsetGet
、同じ $id の異なる呼び出しに対して同じインスタンスを返すことになっています。毎回新しいインスタンスを返しませんか? 私を助けてください。いろいろ試しましたがわかりません。
php - ピンプルと動的コンストラクター注入
Pimple と動的コンストラクター インジェクションについて質問があります。
MVC フレームワークがあり、画像のアップロードのようなことをしたいとします。それを行うセミDIの方法は次のようになります。
基本的Image
には、作成して保存したい画像のプロパティの単純なコンテナーです。、、およびオブジェクトのプロパティと、アップロードされた一時画像のプロパティをJPEGImageSaver
使用して、アップロードされた画像の新しい安全なバージョンを保存します。とのインターフェイスを使用して、アップロードされた画像を安全に保存します。imagecreatefromjpeg()
imagecopyresized()
imagejpeg()
Image
ImageUploader
JPEGImageSaver
問題は、コントローラーと密接に結合された 3 つのクラスがあることです。これを回避しようとした方法は、Pimple を使用してから Pimple をコントローラーに渡すことです。
しかし、ご覧のとおり、コントローラーに依存関係を注入するために Pimple を使用すると、以前よりも使用が複雑になりました。主な問題は、リクエスト中にオブジェクトのコンストラクター値を設定する方法が Pimple にないため、Image
オブジェクトのセッターが多数必要になることです。
この問題の一般的な解決策はありますか? コンストラクター引数を渡すことができる解決コンテナーに Pimple をラップすることを考えましたが、それに関する問題は、IDE がインテリセンシングを通じてさまざまなオブジェクトを構築する方法を示していないことです。$this->app['something']
また、コントローラーがどれだけテスト可能になったかについても少し疑わしいです。
コントローラはテスト可能である必要さえありますか? Image
もしそうなら、そのオブジェクトを値オブジェクトと見なすことができますか?
何かご意見は?
php - PHPStorm オートコンプリート配列キー (動的に挿入)
私は Pimple 依存関係インジェクターを使用しています。コンテナーから依存関係を使用するたびに、依存関係を取得するために使用されるキーのスペルを再確認せざるを得ません。
PHPStormには、これらのプロパティを検索してオートコンプリートを提供する方法がありますか? 次のようなものを使用してこれらすべてのキーを定義することを検討しました
しかし、もっと良い方法があるのだろうかと思います。
編集
サンプルコードは次のとおりです。
$ioc が宣言されているのと同じファイル内の $ioc 宣言の前に /** @var array|Pimple $ioc */ を含めるかどうかに関係なく、文字列の自動補完が正常に機能することがわかりました。ただし、Zend Framework を使用しているため、通常は次のように $ioc を使用しています。
php - Yii で PHPUnit 用のブーストラップ ファイルを構成する
このYiiPimple を依存性注入に使用している場合、phpunit のブートストラップ ファイルを構成するにはどうすればよいですか? 以下のブートストラップ ファイルの内容:
しかし、この phpunit を実行すると、次のエラーが発生します。
php - Silex, using Twig in service
I'm creating an application in Silex. I want to use Twig to render templates in my service which is loading by Pimple. I need this for mailer class.
I started writing application based on silex-skeleton, so I have an twig environment in $app['twig']. The problem is, when I want to pass it into a service:
When I'm writing something like this, twig stops working. All my subpages show:
Twig_Error_Loader: Template "(path).html.twig" is not defined ().
I've tried another trick:
but that also breaks the twig. I've tried to assign and clone an $app['twig'] to another variable, then it also happens.
How can I use Twig in service in Silex?