独自のバンドルを作成します。このバンドルにはクラスがあります。
このクラスには変数があります$Url
。別のバンドルのコントローラーでこの変数を使用したいと思います。別のバンドルのコントローラーに変数を渡すにはどうすればよいですか?
独自のバンドルを作成します。このバンドルにはクラスがあります。
このクラスには変数があります$Url
。別のバンドルのコントローラーでこの変数を使用したいと思います。別のバンドルのコントローラーに変数を渡すにはどうすればよいですか?
最良の選択肢は、Controller as a Service を作成することだと思います。これについては、Richard Miller によるブログ記事を参照してください。
それが完了したら、次の値でサービス パラメータを作成できます$Url
。
# app/config/config.yml
parameters:
my_first_bundle.url: Some value
services:
# request and response services
my.response:
class: Symfony\Component\HttpFoundation\Response
my.request:
class: Symfony\Component\HttpFoundation\Request
# controller services
my_second_bundle.mycontroller:
class: Acme\MySecondBundle\Controller\MyController
arguments: [ %my.response%, %my.request%, %my_first_bundle.url% ]
そのクラスをサービスに変換し、依存性注入を使用して $url 値を設定する必要があるようです。または、あるコントローラーで $url を変更し、後で別のコントローラーで再度アクセスする予定がある場合は、$url を永続化する必要がある場合があります。の上。いずれにしても、そのクラス ファイルをサービスに変換する必要があります。