ホームページ >バックエンド開発 >PHPチュートリアル >thinkphpコントローラーにおけるdisplay()メソッドの実装原理とその対処方法
thinkphp コントローラーの display() メソッドの実装原理は何ですか
thinkphp コントローラーの display() メソッドの実装原理は何ですか
入力しなくても、呼び出されたメソッドの名前に従ってテンプレート ファイルを自動的に検索できます。 display() メソッドのパラメータ
これがどのように達成されるのか、また呼び出されたメソッドの名前をどのように取得するのか教えてください
コードを記述するための最良の方法、またはそのようなことを実現できる主要なメソッドとアイデアについて議論してください関数
-----解決策----------------------
検索してソース コードを読むと、
がわかります。 定義('MODULE_NAME',self::getModule(C('VAR_MODULE'))); 定義('ACTION_NAME',self::getAction(C('VAR_ACTION'))); /**+--------------------- * 実際のモジュール名を取得する +--------------------- * @アクセス非公開 +--------------------- * @戻り文字列 +---------------------*/ 静的プライベート関数 getModule($var) { $module = (!empty($_GET[$var])? $_GET[$var]:C('DEFAULT_MODULE')); if(C('URL_CASE_INSENSITIVE')) { // URL アドレスは大文字と小文字を区別しません 定義('P_MODULE_NAME',strto lower($module)); // インテリジェントな識別メソッドindex.php/user_type/index/ は UserTypeAction モジュールを識別します $module = ucfirst(parse_name(P_MODULE_NAME,1)); } unset($_GET[$var]); $module を返します。 } /**+--------------------- * 実際のオペレーション名を取得します +--------------------- * @アクセス非公開 +--------------------- * @戻り文字列 +---------------------*/ 静的プライベート関数 getAction($var) { $action = !empty($_POST[$var]) ? $_POST[$var] : (!empty($_GET[$var])?$_GET[$var]:C('DEFAULT_ACTION')); unset($_POST[$var],$_GET[$var]); return C('URL_CASE_INSENSITIVE')?strto lower($action):$action; <div class="clear"></div>