2012-01-11 11 views
2

私はphpで5年以上働いています。最近私はルビーレールで働いていました。私はこの素晴らしいフレームワークでいくつかのプロジェクトを行ってきました。レールとルビーから私が最も好きなのは、自動化テストを促進し、豊富な豊富なライブラリがあることです。 RspecとTestUnitは、PhpUnitと比較して習得が非常に簡単です。kohanaモデル、コントローラをテストするには

私は次の月に非常に大きなプロジェクトを開発しなければなりません。私はcakephpの大きなファンですが、cakephpが私のプロジェクト要件を満たしていないことに気付きました。私は簡単な学習者です。 Kohana公式サイトからdocを読んだ後、私はKohanaをこのプロジェクトに使用します。 Kohanaの上でいくつかの検索を行わした後

は、私はまだ

  1. テストモジュールは、ドキュメントの欠如である懸念にいくつかのトピックを持っています。モデル、コントローラ、機能テストのテスト方法がわかりません。誰も私にアイデア、チュートリアル、例、リソースを提供できますか?
  2. アプリケーション環境はあまり明確ではありません。申し訳ありません。私はルビーレール付きの素敵な家族です。私はレールの環境が私にとってより意味をなさないと感じます。私は特定の環境で1つの宝石を持つことができます。たとえば、テスト環境用のrspec gem(自動テスト用)があり、私は生産用のユニコーンの宝石しか持っていません。ルビーを初めて使う人には、コハナの "モジュール"に似たものがあります。誰も私にkohanaにテスト環境だけで "unittest"をロードする方法を教えてもらえますか?私は生産環境でunittestをロードしたくないからです。
  3. Railsには、rails consoleというアプリコンソールモードがあります。レールコンソールを使用して、コンソールモードでモデルと対話できます。 Kohanaにこれに類似したものはありますか?
+0

Brandonsは2番目の質問に非常に良い解決策を提案しました。http://forum.kohanaframework.org/discussion/comment/68904?post#Form_Body –

答えて

3

私はまだ何も良いし、わずか2あなたの質問に答えることができ;)

AD2。あなたは、.htaccessファイル(setenvgetenv)に基づいてKohana::$environment変数/ $_SERVER設定を設定することができます。

if (Arr::get($_SERVER, 'SERVER_NAME') !== 'localhost') 
{ 
    // We are live! 
    Kohana::$environment = Kohana::PRODUCTION; 

    // Turn off notices and strict errors 
    error_reporting(E_ALL^E_NOTICE^E_STRICT); 
} 
else 
{ 
    Kohana::$environment = Kohana::DEVELOPMENT; 
    error_reporting(E_ALL | E_STRICT); 
} 

次に、あなたがすることができ、このようなセットアップKohana::init

Kohana::init(array(
    'base_url' => '/', 
    'caching' => Kohana::$environment === Kohana::PRODUCTION, 
    'profile' => Kohana::$environment !== Kohana::PRODUCTION, 
    'index_file' => FALSE, 
    'errors' => TRUE 
)); 

ので、本番アプリケーションがキャッシュを有効にしていますし、プロファイリングが無効になりました。

if (Kohana::$environment !== Kohana::PRODUCTION) 
{ 
    Kohana::modules(array(
     'unittest' => MODPATH . 'unittest', 
    )); 
} 

AD3:それはほとんど同じだモジュールの場合
。不器用なことに申し訳ありません - いいえ、1つではありません。

+0

私は完全修飾ドメイン名を使用するように仮想ホストを構成しました。例えばwww.niph.com.kh。プロダクションモードでlocalhostを実行することもできます。だから私はサーバー名の名前をチェックすることは私にとっては良いアプローチではないと思います。他のアプローチはありますか? –

+1

次に、setenvとgetenvを使うことができます - http://stackoverflow.com/questions/2008123/how-to-use-getenv-in-php-and-setenv-in-a-htaccess-with-a-compiled-php -cgi-on – matino

関連する問題