新闻中心

thinkphp基础教程:如何创建控制器和url访问

作者 / 无忧主机 时间 2012-09-18 08:29:01

在上一节我们讲了thinkphp的项目目录结构部署,其中小编重点提到一个很重要的Lib目录,不知大家是否还记得这个目录下面放的是控制器和模型?如果还没阅读这篇文章,那么建议现在点击阅读“thinkphp 3.0主入口文件介绍”。 无忧主机(www.51php.com)小编今天就来和大家一起学习下这个控制器,什么是控制器?我们从字面可以理解,控制器就是控制程序在运行的东西,就像是部队的司令一样,由控制器发出命令让底层去执行,每个控制器里面可以有很多个方法,也称为动作。好了,讲理论的东西比较晕,我们就通过安装在php虚拟主机中的一个实例来帮助大家理解。我们来到Lib-Action目录下面可以看到有一个默认的控制器IndexAction.class.php,我们用编辑器打开来看一下里面的代码: 仔细分析下,这是一个类IndexAction,继承了Action,关于类和继承这些东西需要一定的面向对象基础才能看的懂,这些基础的东西小编建议大家多去看看书,无忧主机(www.51php.com)小编,在后面也会推出一些php基础的教程。好,我们继续往下看,是一个公共方法(public) index,在这个方法里面echo输出了一些东西,其实输出的这些东西我们很熟悉,大家还记得我们执行主入口文件看到的界面吗?我给大家回顾下,看下图: 因为小编的本地搭建的本地php环境。如果你有兴趣像我一样的php程序运行环境来调试各类php开源程序,你可以通过参考“手把手教您:个人电脑搭建php+mysql环境调试php程序”中介绍的方法快速搭建一个可以安装thinkphp网站的本地php测试环境。的项目是放在tp目录下面,所以我直接在浏览器里面输入http://localhost/tp/index.php就看到了一个欢迎界面,其实现在看到的这个界面就是在默认的控制器里面的index方法输出的,如果有疑问的话我们来改动一下index方法里面的代码,小编改成这样: 我多加了一句输出语句,我们现在再来访问下主入口文件,看看有什么不一样 看到了吧,只要一修改默认控制器里面的index方法,访问主入口文件就发生变化了,通过这个例子说明了,主入口文件默认是去访问index控制器里面的index方法,那如果里面还有其他的方法要怎么去访问呢? 好,这里引出今天的重点,thinkphp是通过URL的模式去访问控制器的,URL规范是这样的,http://域名/主入口文件/控制器/方法 ,比如说你的域名是www.51php.com,主入口文件是index.php,我们要去访问IndexAction这个控制器里面的默认index方法,就是这样写http://www.51php.com/index.php/index/index,以此类推。如果主入口文件后面什么都不加,会默认去访问默认控制器里面的默认index方法。到这里了解了控制器的访问规则要创建它就很简单了哦,但也要注意命名规范,我们试着在Lib-Action目录下面创建一个控制器user,取名为UserAction.class.php,注意这个命名规范,控制器名首字母大写,后面必须跟上Action,这个没有为什么,因为thinkphp就是这样规定的。我们在里面写两个方法吧!

<?php

class UserAction extends Action{

public function index(){

header("Content-Type:text/html;

charset=utf-8");

echo "<h1>这是User控制器下面的index方法(无忧主机thinkphp演示教程)</h1>";

}

public function demo(){

header("Content-Type:text/html; charset=utf-8");

echo "<h1>这是User控制器下面的demo方法(无忧主机thinkphp演示教程)</h1>";

}

}

?>
小编写了一个index方法和一个demo方法,分别输出了一句话,看上面的代码注意几点细节,类名和文件名必须保持一致,此类必须继承Action,还有THINKPHP是UTF-8的编码格式,一定要在每个方法里面指定编码,不然就出现乱码了,我们现在来试着访问下,大家注意看小编浏览器的URL路径(如下图): 注意观察两个URL和输出,好了,今天的教程就到这里,知识点比较多,小编建议各位读者多操作练习。  

纯Linux环境下高端免备案【香港独立IP地址】 php空间,仅仅只需199元一年起。商务中国域名核心代理直销50元注册国际顶级域名

本文地址:https://www.51php.com/thinkphp/8563.html

1
1
1
1
1
1
1

客户服务热线

0791-8623-3537

在线客服