ThinkPHP框架完全解析四

第四步:Think类的实现之URL模式

要实现像thinkphp类似URL访问模式。

比如访问:http://127.0.0.1/index.php/Home/Index/index

通过使用:$_SERVER['PATH_INFO']便能得到:/Home/Index/index

在thinkphp中,Home表示模块,Index表示控制器,index表示操作。

而实际上,控制器是某个类的名字,而操作,其实就是类中的操作。

比如我们访问上面那个网址,那么就可以得到,是Home目录下的IndexController类中的index函数。

所以,我们可以这样做:

$test = new IndexController;

$test->index();

在这里,不需要将IndexControll.class.php这个文件给包含进来,因为autoload这个函数会将我们的IndexController.class.php自动加载进来。

首先,在Library/think中创建一个名为app.class.php的文件:

代码如下:


然后未来测试,我们添加一个控制器文件:



运行:127.0.0.1/tp_an/便可浏览到如下效果:


而如果是:127.0.0.1/tp_an/index.php/Home/Index/test:


好了,现在我们已经基本实现了thinkphp的url模式了,最后再来看下:

比如输入:127.0.0.1/tp_an/index.php/Home/Index/test.

那么,实例化类应该是:

$Controller=newHome\Controller\IndexController;

$Controller->$ACT();

这里,由于IndexContoller.class.php这个文件没有被加载,因此无法实例化该类,所以autoload会被自动调用,然后将该文件给加载进来。

但是在IndexController.class.php中,可以看到我们的类名是IndexController,而不是Home\Controller\IndexController,那么我们该怎么让系统实例化我们的类呢?

其实,我们可以看到IndexController.class.php文件的第一行是;

Namespace Home\Controller;

通过这个,我们不仅可以定位到我们的类文件的位置,而且还能正常地实例化我们的类。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值