2009-10-20 8 views
7

私はブートストラップファイルにURLパラメータを取り込もうとしていますが、何度か試行した後にはできません。ブートストラップでURLパラメータにアクセスする方法

私はこれを試してみたが、それは動作しません:

protected function _initGetLang() { 
    $frontController = Zend_Controller_Front::getInstance(); 
    $lang= $frontController->getParam('lang'); 
} 

が、これはそれを行うための正しい方法ですか?

Thks。

答えて

9

ディスパッチ/ルーティングプロセスをまだ経ていないため、ブートストラップからリクエストパラメータにアクセスすることはできません。私はController Pluginを使ってよりうまくやっていると思います。URLに基​​づいてアクションを実行するのが彼らのベストです。または、ブートストラップで絶対に行う必要がある場合は、getRequestUri()または$_GETが利用可能です。また、あなた自身がurlを解析するためのクイックスクリプトを書くこともできます。

編集:私はプラグインが動作する方法を考え出した前

私は過去にこのようないくつかの愚かなものをやった:

/** 
* Grab the module name without a request instance 
* 
* @return string The module name 
*/ 
public static function getModuleName() 
{ 
    $uri = ltrim($_SERVER["REQUEST_URI"], "/"); 
    $module = substr($uri, 0, strpos($uri, "/")); 
    return $module; 
} 

これは、少なくともあなたモジュール名を与えるだろうブートストラップにswitchを入れることができます。あなたは、プラグインが正しく行われているので、必要なことをすることができるはずです。

+2

このZend Devzoneの記事も参照してください:http://devzone.zend.com/article/3372 –

+0

あなたの回答をありがとう、前にプラグインのアプローチを試みましたが、それは私が望んだことをしませんでしたが、 "lonut G. Stan"が何か間違っているかどうかをチェックする記事を読んでください。それがうまくいかない場合は、 'Typeoneerror'が提案する$ _GETをします。 – elbicho

関連する問題