2

2種類のパラメータがあるウィジェットを作成しています:

-ウィジェットを呼び出す場所に応じて変更できるもの。これらはウィジェット呼び出しで定義されます。

<?php $this->widget('ext.myWidget', array(
    'someParams' => 'someValues',
)); ?>

-ウィジェットへのすべての呼び出しで同じもの (ライブラリへのパス、画像を保存する場所など)

2 番目のタイプのパラメーターを定義する最善の方法を知りたいです。

ユーザーに構成ファイルのparams配列で定義させるか、ウィジェットファイルの配列で定義させるかをためらっています。

最初のオプションの主な利点は、ユーザーがウィジェットファイルを変更する必要がないため、更新の場合に変更が上書きされないことですが、これは特定のユーザーパラメーターではないため、構成の parmas 配列に配置しますファイルは奇妙に見えるかもしれません。

では、最善の解決策は何でしょうか? 上記の2つよりも良いものがあれば教えてください!

編集:

私の考えを明確にするために: 私のウィジェットは、構成可能なディレクトリに保存できるいくつかの画像を生成します。しかし、このディレクトリはウィジェットが呼び出されるたびに同じでなければならないので、この構成をウィジェット呼び出しに入れる意味がわかりません! paramsこれが、次のような配列で、構成ファイルにいくつかのパラメーターを入れることを考えていた理由です。

params => array(
    'myWidget' => array(
        'imageDir' => 'images',
    )
)

paramsしかし、拡張機能が配列にいくつかの構成値を持つことが良い習慣であるかどうかはわかりません。

別の解決策はconfig.php file、プラグインのメイン構成ファイルを変更する必要がないように、ユーザーが独自の値を設定できる拡張ディレクトリに を配置することです。しかし、この代替案の主な欠点は、ユーザーが拡張機能を更新すると、構成が失われることです。

これが、ウィジェットの構成に関するベストプラクティスを探している理由です

4

1 に答える 1

2

おそらく、あなたが探しているのは、ウィジェットというよりもアプリケーション コンポーネントです。ウィジェットを使用すると、コンポーネント内でより多くの力を得ることができます。すべての関連ファイルを含むフォルダーの下の拡張機能ディレクトリにすべて存在し、どこからでも簡単に呼び出すことができますが、構成は各環境の構成ファイルで定義できます。

configs でコンポーネントを設定するときは、classarray パラメーターを components フォルダーではなく extensions フォルダーにポイントするだけです。

更新:
それほど複雑ではないためにウィジェットを使用したい場合は、ウィジェットのアプリケーション構成内でいくつかのデフォルトを提供できます。私はそれを自分で使用したことはありません。 com/doc/guide/1.1/en/topics.theming#customizing-widgets-globally .

しかし、より複雑なウィジェットでは、メソッドを呼び出してオプションを取得することがはるかに簡単でクリーンでありながら、拡張機能に関連するすべてを 1 つのフォルダー内に保持できるため、長期的にはコンポーネントの方が優れていることがわかりました。

于 2012-12-19T09:00:27.453 に答える