2017-09-05 16 views
0

私はSymfonyアプリケーションを構築しています。私はそれをWebプラットフォームで直接設定できるようにしたいのです(つまり、ファイルを自分で変更する必要はありません)。これを行うには、キーと値でグローバルパラメータを作成したかったのです。たとえば、キーは文字列emailsで、値は電子メールリストです。ファイルまたはデータベーステーブルを使用してパラメータを格納する必要がありますか?

これはsymfonyでparameter filesを使って簡単に行うことができますが、アプリケーションでこのファイルを読み書きすることもできますが、データベースを使用してparameterテーブルを作成してキーと値。

デザイン面ではどう思いますか?他のものよりむしろ1つを使うほうが良いでしょうか、それとも本当に重要ではないと思いますか?

編集:私が望むのは、自分のアプリケーションで使用できる動的なパラメータを持つことです。たとえば、私はインターフェイスの色を変更することができます。

+0

データベースはアプリケーションパラメータを保存するためのものではありません.http://symfony.com/doc/current/best_practices/configuration.html – Sermanes

+0

このドキュメントはすでに読んでいます。私はより具体的にすべきだった。私が欲しいのは、ユーザが何かを報告する必要がある場合に、インタフェースの色や連絡先の電子メールのリストのように、アプリケーションが使用する "パラメータ"を動的に変更できることです。 –

+0

その場合はええ – Sermanes

答えて

1

開発環境と運用環境の間で変更されるパラメータに対してのみ、「パラメータファイル(yml)」を使用します。 問題なくdbをバックアップして復元できます。

ユーザー設定にlocalStorageまたはCookiesを使用します。

開発環境と運用環境の間で変更されないサイト構成には、データベースを使用します。

+0

あなたの返事をありがとう。だから私の場合は、あなたが言ったことに従ってデータベースを使うべきです。 –

+0

私はあなたがparameter.ymlを使用する必要があると思います。データベースは、アプリケーションパラメータを保存するためのものではありません。 – Sermanes

0

あなたのアプリケーションに取り組んでいる同僚があなたの現在のパラメータにアクセスできるようにする必要があるとします。場合は、パラメータファイルを持っている場合は、単にあなたのgitリポジトリに追加し、コミットして、リモートにプルすることができます。そしてそれをあなたのデータベースからどのように共有しますか?間違いなく、それはあなたのためのより多くのステップを含むでしょう。また、データストレージをデータベースから別のものに変更する場合は、設定エンティティを新しいストレージに再度マッピングする方法を定義する必要があります。その仮定によれば、私はパラメータファイルがこのタスクに適していると言います。

+0

私は本当に私は定期的に変更する必要はないパラメータのパラメータファイルを使用しています。ここでの必要性は異なります。インターフェースの色を変更したいとしましょう。ファイルを使って、私は次のことを行う必要があります:1)変更を行います。 2)コミットする。 3)展開します。それは、ちょっとした変更をするだけの長いプロセスと、頻繁に行うことができるプロセスです。私は、アプリケーションが実行されているときにパラメータファイルを変更すべきではないと思います。 –

+0

私はそれが1)あなたのアプリモデルのドメインの一部ではないと信じています。 2)アプリケーションのデプロイ時にアクセス可能でなければなりません。あなたのデータベースに格納すべきではありません。データベースはアプリケーション構成に影響しません。そして、あなたは間違っています。「ファイルで、私は、1)変更を行う、2)コミットする、3)展開する必要があります。小さな変更を行うだけで、頻繁に行うことができる長いプロセスです。私はそれがgitリポジトリにあるべきであると信じていますが、あなたのバージョンを共有したくない場合を除き、(つまり、gitignoreでは)言い換えれば、システムを追跡していません。 DB用のCRUDの作成は、より長いプロセスになります。 –

+0

さらに、あなたのアプリケーションを特定のストレージに結びつけて、構成をDBに配置します。あなたがあなたのストレージを変更したい画像 - それは問題ではありません - そこにあなたの設定を保存するDB beacuseが必要です - そして、これはその場合の悪いアプローチです。 –

関連する問題