私は過去にcodeigniterを使用しましたが、現在のプロジェクトではKohanaに切り替わります。定数に関するベストプラクティスは何ですか?Kohanaの定数
codeigniterには実際のconstants.phpがありますが、Kohanaのソースを経由すると、私は何か似たようなことはしません。
私は過去にcodeigniterを使用しましたが、現在のプロジェクトではKohanaに切り替わります。定数に関するベストプラクティスは何ですか?Kohanaの定数
codeigniterには実際のconstants.phpがありますが、Kohanaのソースを経由すると、私は何か似たようなことはしません。
kohanaは使用しませんでしたが、すばやいグーグルの後には、config APIを使用して必要な定数を格納する独自の設定を作成することができます。
This threadは、データベースに依存する項目を格納する場合は、database.php configなどに配置することを提案しています。
私はKohanaに精通していますが、CIはあまりよく分かりません。したがって、私はあなたが「定数」を意味するものを少し推測しています。私はこれに最も近いことは確かにKohanaのconfig APIです。ですから、あなたのサイト名のようなサイト全体の定数をテンプレートに認識させたいのであれば、config APIを使うのは素晴らしいことです。
これを達成するには、/ configフォルダ(おそらく/ applicationディレクトリ)にconfigファイルを作成する必要があります。あなたが呼んでいることはあまり重要ではありませんが、サイト情報が含まれているので、site.phpと呼ぶことにしましょう。
A:今
<?php defined('SYSPATH') or die('No direct script access.');
return array(
// Your site name!
'name' => 'Oh me, Oh my',
);
は、あなたのような何かをすることによって、テンプレートにして、これを持って来ることができます。
はすぐにここにあなたがそのファイルを持っているしたいと思うものです、軌道に乗るために、これを行うより良い方法は(ダムテンプレートを使用して)これをコントローラのテンプレート変数として割り当てることです。
public function action_index() {
$this->template->site_name = Kohana::config('site.name');
}
をそしてあなたのテンプレートはこのような何かを持っているでしょう::だから、あなたが設定し、いくつかのデフォルトのコントローラを持っていると仮定すると、コードは次のようになり
<title><?php echo $site_name; ?></title>
それは階層的であるためのKohanaのconfig APIが面白いです、つまり、既存の設定構造の上に新しい設定値を上書きしてマージすることができます。 Kohana::config('site.name')
を呼び出すと、エンジンはsite.phpという名前のすべての設定ファイルを調べ、それらの設定ファイルをすべて実行し、結果を配列にマージします。アプリケーションレベルの設定ファイルはモジュールを上書きし、システムなどを上書きします。次に、その結果配列に基づいて、Kohanaは '名前'キーを見つけて返します。
グローバル定数が必要であると仮定します。以下がうまくいきました。
アプリケーション/設定/ constants.php:
define('MY_COOL_CONSTANT', 'foo');
return array();
のindex.php:
Kohana::$config->load('constants');
MY_COOL_CONSTANTは、世界的に利用可能であるべきです。
どのような種類のデータを定数に保存しますか? – zerkms
kohanaはもはやCIに関係しません。 – yoda
今、テンプレート用のもの。フレンドリーなサイト名のようなものではありません。 – ws0x9