第五节 初步了解 URL 如何访问模块操作
通过前面的学习,我们已大概地明白了应用模块中的操作与模板如何对应。
而这一节将简单讲解如何通过 URL 来访问操作。由于我们要循序渐进,所以先只介绍下面章
节要用到的知识,要想深入学习还请参看官方手册《URL 设计和 SEO 支持》
TP 支持四种 URL 访问方式,默认是智能模式,所以我们就这种模式进行简要说明。
智能模式下的 URL 基本结构是这样
的 http://servername/appName/moduleName/actionNa
me/params 你可以理解为
http:// 服务器地址 / 入口文件位置 / 应用模块名称 /具体操作名称/ GET 变量参数
解释一下上面文字中所译的 URL 结构,为什么 appname 项目名称我将它译成了入口文件位
置: 通常情况下,我们的入口文件 index.php 都是放在根目录中,这时项目名称就会被入口
文件 index.php 所替代。在前几节里,我们已知道,一个 Action 文件就是一个应用模块,
而应用模块中的每个方法(function) 就是一个具体操作。因此,假如要访问我们实例中的
Index 模块下的 index 操作。地址应该是
http://127.0.0.1/index.php/Index/index
如果入口文件不是在服务器的根目录,而是在 myapp 目录下,那么入口文件位置就
是 Myapp/index.php,此时上面的 URL 访问就相应要换
成 http://127.0.0.1/Myapp/index.php/Index/index
这样说理应很清楚了,不过别让这么多 index 给混乱咯,对应 URL 的结构去明白每一个
index 的函义,同时注意大小写
简单实操:
1 打开 Myapp/Lib/Action/IndexAction.class.php 文件,在 index 这个 function 下再添
加 一个操作 test
<?php
class IndexAction extends
Action{ public function index(){
$array = array();
$array['name']
=
'thinkphp';
$array['email']
$array['phone']
=
=
'liu21st@gmail.com'
;
'12335678';
$value = 'hello,ThinkPHP';
$this->assign('array',$array);
$this->assign('name',$value);
$this->display();
}
public function test(){
header("Content-Type:text/html; charset=utf-8");
echo ' 哈,访问正确!!';
}
} // 类 定义 end
?>
2 尝试对应 URL 结构,来访问这个 test 操作,如果能成功看到 echo 的文字。则这节我们又