Heim > Backend-Entwicklung > PHP-Tutorial > thinkphp 控制器中 display()步骤实现的原理

thinkphp 控制器中 display()步骤实现的原理

WBOY
Freigeben: 2016-06-13 12:57:46
Original
785 Leute haben es durchsucht

thinkphp 控制器中 display()方法实现的原理
thinkphp 控制器中 display()方法实现的原理是什么
     display()方法中可以不填写参数 根据调用的方法名称来自动查找模板文件
     请问这是怎么实现的 他是怎么获取调用的方法名称的
      
     请大家共同探讨下  最好能写个能实现这样的功能的代码 或 关键方法和思路
------解决方案--------------------
你搜索一下,读读他的源码不就知道了

<br />
        define('MODULE_NAME',self::getModule(C('VAR_MODULE')));<br />
        define('ACTION_NAME',self::getAction(C('VAR_ACTION')));<br />
<br />
/**<br />
     +----------------------<br />
     * 获得实际的模块名称<br />
     +----------------------<br />
     * @access private<br />
     +----------------------<br />
     * @return string<br />
     +----------------------<br />
     */<br />
    static private function getModule($var)<br />
    {<br />
        $module = (!empty($_GET[$var])? $_GET[$var]:C('DEFAULT_MODULE'));<br />
        if(C('URL_CASE_INSENSITIVE')) {<br />
            // URL地址不区分大小写<br />
            define('P_MODULE_NAME',strtolower($module));<br />
            // 智能识别方式 index.php/user_type/index/ 识别到 UserTypeAction 模块<br />
            $module = ucfirst(parse_name(P_MODULE_NAME,1));<br />
        }<br />
        unset($_GET[$var]);<br />
        return $module;<br />
    }<br />
<br />
    /**<br />
     +----------------------<br />
     * 获得实际的操作名称<br />
     +----------------------<br />
     * @access private<br />
     +----------------------<br />
     * @return string<br />
     +----------------------<br />
     */<br />
    static private function getAction($var)<br />
    {<br />
        $action   = !empty($_POST[$var]) ?<br />
            $_POST[$var] :<br />
            (!empty($_GET[$var])?$_GET[$var]:C('DEFAULT_ACTION'));<br />
        unset($_POST[$var],$_GET[$var]);<br />
        return C('URL_CASE_INSENSITIVE')?strtolower($action):$action;<br />
    }<br />
<br />
Nach dem Login kopieren

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage