ホームページ > バックエンド開発 > PHPチュートリアル > thinkphpコントローラーにおけるdisplay()メソッドの実装原理とその対処方法

thinkphpコントローラーにおけるdisplay()メソッドの実装原理とその対処方法

WBOY
リリース: 2016-06-13 13:38:18
オリジナル
786 人が閲覧しました

thinkphp コントローラーの display() メソッドの実装原理は何ですか
thinkphp コントローラーの display() メソッドの実装原理は何ですか
入力しなくても、呼び出されたメソッドの名前に従ってテンプレート ファイルを自動的に検索できます。 display() メソッドのパラメータ
これがどのように達成されるのか、また呼び出されたメソッドの名前をどのように取得するのか教えてください

コードを記述するための最良の方法、またはそのようなことを実現できる主要なメソッドとアイデアについて議論してください関数

-----解決策----------------------
検索してソース コードを読むと、

PHP コード
 がわかります。

        定義('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>
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート