一、初探
我们在apache的www目录下创建一个文件夹,其命名为我们的应用名。然后通过入口文件生成我们的应用。
当我们用ThinkPHP创建好一个应用后,其目录结果如下所示
那么我们如何来访问我们应用中的模块呢?其规则如下
http://serverName/applicationName/index.php(或者其他应用入口文件)/模块/控制器/操作/[参数名/参数值...]
比如访问应用CloudCrypt应用下的Home模块的方式如下
http://localhost/CloudCrypt/index.php/Home/Index/index
其返回结果图所示
二、controller
在上面的目录结构中我们可以看到Home模块下有个controller文件夹,这就对应我们MVC中的C了。一般所有的请求都需要经过控制器,而我们编写的控制器都放在该文件夹下。默认的控制器是IndexController.class.php
<?php namespace HomeController; use ThinkController; class IndexController extends Controller { public function index(){ $this->show('<style type="text/css">*{ padding: 0; margin: 0; } div{ padding: 4px 48px;} body{ background: #fff; font-family: "微软雅黑"; color: #333;font-size:24px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.8em; font-size: 36px } a,a:hover{color:blue;}</style><div style="padding: 24px 48px;"> <h1>:)</h1><p>欢迎使用 <b>ThinkPHP</b>!</p><br/>版本 V{$Think.version}</div><script type="text/javascript" src="http://ad.topthink.com/Public/static/client.js"></script><thinkad id="ad_55e75dfae343f5a1"></thinkad><script type="text/javascript" src="http://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script>','utf-8'); } }
我们访问就这个控制器下的index方法,这同时也给我提供一个控制器编写规范,当我们需要添加控制器时就直接在该文件夹下创建一个nameController.class.php。然后在里面仿照上面的方式来写我们的方法。
三、添加方法
我们为IndexController.class.php添加一个sayHello方法。
<?php namespace HomeController; use ThinkController; class IndexController extends Controller { public function index(){ .......... } public function sayHello(){ $this->show('<h1>你好!</h1>'.$_GET['username']); } }
通过浏览器访问
-
PATHINFO模式
-
传统方式
常用的访问方式是PATHINFO方式,当然还有其它的方式,详见戳我