
開発中、多くの場合、一度に複数の環境をサポートする必要があります:開発、ステージング。 生産など、設定がまったく異なる場合があります。 最も単純な例は、データベースに接続するためのパラメーターですが、1つのパラメーターだけでなく、セクション全体(ログの記録やキャッシュのバックエンドなど)を変更したい場合もあります。 さらに、さまざまなCMSを開発するときに、ユーザーが見つけやすいように、一部の設定を表示したい場合があります。 これらの問題がPHPixieでどのように解決されるかを見てみましょう。 そしてもちろん、これらはすべてフレームワーク自体がなくても機能し、
symfony / configパッケージよりはるかに簡単です。
パラメータできる最も簡単なことは、後で設定で使用できるいくつかの変数を作成することです。このために、ファイル
/assets/parameters.phpを作成します。
<?php
%name%を使用して、構成ファイルでそれらを使用できるようになりました。次に例を示します。
<?php
その結果、変数自体を使用場所から分離します。
parameters.phpを
.gitignoreに追加
すると、githubでコードを自由に共有できます。
しかし、さらに必要な場合はどうでしょうか? たとえば、開発者とのみ機能し、本番環境では無効になっているルートをいくつか追加しますか? このためには、オーバーレイが必要です。
オーバーレイ構成の1つで、データベースをMongoDBに接続するとします。 これを行うには、
ローカルなどの美しい名前でフォルダーを作成し、そこにローカルの変更を追加します。
<?php
変更がほとんどない場合、フォルダーを作成することもできず、すべてを1つのファイルに入れるだけです。
<?php
オンにするだけです。これのために
parameters.phpに 1行追加し
ます 。
<?php
もちろん、このようなオーバーレイをいくつか作成して、好きなように切り替えることができます。
結果を見るには?デバッグ用:
print_r($frameworkBuilder->configuration()->config()->get());
フレームワークなしで使用するSliceおよび
Configベースライブラリに追加されたすべての機能。 構成を作成するときに、パラメーターのロード元となる別の構成またはスライスを指定できます。
$configBuilder = new \PHPixie\Config(); $parameterStorage = $configBuilder->file('parameters.php'); $rootDir = ...;
オーバーレイはさらに簡単です;実際、2つのSliceインスタンスまたは構成を1つにマージできます。 同時に、遅延ファイルのアップロードは引き続き正常に機能します。
$sliceBuilder = new \PHPixie\Slice(); $configBuilder = new \PHPixie\Config(); $configuration = $configBuilder->file('config.php'); $overlay = $configBuilder->file('overlay.php'); $merged = $sliceBuilder->mergeData($configuration, $overlay);