ホームページ  >  記事  >  バックエンド開発  >  symfony はどのように設定情報を読み取るのでしょうか?

symfony はどのように設定情報を読み取るのでしょうか?

WBOY
WBOYオリジナル
2016-08-04 09:21:421364ブラウズ

たとえば、ページングクラスのデフォルト設定

knp_paginator:

リーリー

どのようなパラメーターがあるかを確認するためにコントローラーの関数をカスタマイズしました

parameterBag に含まれる設定情報と含まれない設定情報があることがわかりました。例:
$this->getParameter('knp_paginator.page_range') の値は 5
$this->getParameter('knp_paginator.default_options) です。 ') エラーが直接報告されてしまいます
何が起こっているのかわかりません
knp_paginator.default_options.page_nameを読みたい場合は何を書けばいいですか

返信内容:

たとえば、ページングクラスのデフォルト設定

knp_paginator:

リーリー

どのようなパラメーターがあるかを確認するためにコントローラーの関数をカスタマイズしました

parameterBag に含まれる設定情報と含まれない設定情報があることがわかりました。例:

$this->getParameter('knp_paginator.page_range') の値は 5
$this->getParameter('knp_paginator.default_options) です。 ') エラーが直接報告されてしまいます
何が起こっているのかわかりません
knp_paginator.default_options.page_nameを読みたい場合は何を書けばいいですか

Bundle に対応する KnpPaginatorExtension クラスを確認したところ、Bundle に対応するdefault_options がコンテナの setParameter メソッドを使用してパラメータを宣言していないことがわかりました。そのため、コンテナの getParameter メソッドを通じて取得することはできません (専門家が見つけた場合)方法を教えてください。)

関連するパラメータを取得したい場合は、これを行うことができます。

parameters.ymlで対応するパラメータを宣言します:

リーリー

次に、config.yml で次のように使用します

リーリー

パラメータをparameters.ymlファイルに抽出し、パラメータオブジェクト全体をdefault_optionsに割り当てるだけで問題ありません。その後、対応するパラメータ値を取得したい場合は、$this->getParameter('knp_paginator_options)を直接使用できます。 ')['page_name'] を取得しました。

お役に立てば幸いです〜

まず第一に、

設定についての理解が間違っています。

Symfonyまず、

フィールドの下。さらに詳しく調べる必要があります (この点に関する手順については、まず公式ドキュメントを確認する必要があります。そうでない場合は、読み続けてください)。

$this->getParameter()方法顾名思义,读取的内容必须是parameters字段下的参数。你想读取的参数不一定就在parameters2番目、

方法。

リーリー KnpPaginatorBundle这个第三方Bundle的配置是通过这个类,也就是Bundle的依赖注入扩展类(Dependency Injection (DI) ExtensionKnpBundlePaginatorBundleDependencyInjectionKnpPaginatorExtension来载入的。以下代码摘自该类的load上記のコードを通じて、この

メソッドが次のようにこれら 4 つのパラメーターをそれぞれ取得することがわかります。 リーリー

最後に、その他のパラメータですが、Bundle一共定义了四个参数,你可以通过$this->getParameter()メソッドで取得します。

関連するドキュメントのリンクは次のとおりです: バンドル内にサービス構成をロードする方法Bundle作者没有在依赖注入扩展类中以parameter的形式暴露给开发者,我们是无法通过$this->getParameter()

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。