ThinkPHP入门,从路由的角度

缘起

这是我的第一篇技术日志。时间2017年3月30日,凌晨0:33。位置华东师范大学,第五宿舍,331B。好不容易建好服务器,装好wp,必须先扯点儿没用的来平复一下激动的心情。为啥写ThinkPHP呢,这涉及到我的第一桶金(说来话长,那就不说了)。阿伦说我们用ThinkPHP来开发公众号吧,这个框架模板多。我一听模板多,这感情好,什么高贵优雅的Laravel先放一边儿 。于是乎开始搞起了ThinkPHP。阿伦给我发了一个公众号的模板,用的是3.2.3版本,那就研究这个了。

零基础入门咯

说是零基础,服务器总该建好了吧,html和php以及MVC的思想应该了解个大概吧。闲话不多说,直接从这个框架的逻辑上一起初步认识它。

首先下载个ThinkPHP3.2.3(tp3.2.3),把项目(文件夹名tp3.2.3)放到wamp的www目录下。在浏览器中输入http://localhost/tp3.2.3/index.php,可以看到一个欢迎页面。我们来聊聊输入这个url之后发生了什么。

其实这个url和http://localhost/tp3.2.3/index.php/home/index/index是完全等同的,省略的部分都是默认值。先说index.php。

打开它可以看到几行稀疏的代码。具体先不细讲,可以将这些内容理解为对项目的初始化。但有一点很重要,这是项目的入口,而且这个项目只有这一个入口。引用官方教程中的一句话就是

“ThinkPHP采用单一入口模式访问应用,对应用的所有请求都定向到应用的入口文件”

不多解释了,应该好理解。接下来是home/index/index这一串东西。再次引用官方教程:

“系统会从URL参数中解析当前请求的模块、控制器和操作,下面是一个标准的URL访问格式:
http://serverName/index.php/模块/控制器/操作

自行对应一下。你一定要问了,home、index、index都在哪儿呢?看看文件目录就明白了。

Application目录是刚才提到的那个index.php定义的,它下面的Home文件夹表示默认的模块Home。那么home/index/index是怎么来的呢?

就这么来的,很直观吧。看了index函数,就明白那个欢迎页面是怎么来的了。

其实这个index函数是可以接受参数的。修改index函数为:

public function index($arg='World'){
    echo 'Hello,'.' '.$arg.'!';
}

我给它一个默认参数,先试试不传参数的情况。输入http://localhost/tp3.2.3/index.php/home/index/index,显示如下

再来一个http://localhost/tp3.2.3/index.php/home/index/index/arg/baby

是不是有点儿意思。

不过你有没有发现讲到现在都没讲到view的事儿。

在这个目录下创建一个新的html文件hello.html:Home/View/Index/hello.html,修改代码为:

<html>
<head>
    <title>hello {$name}</title>
</head>
<body>
hello, {$name}!
</body>
</html>

{$name}挺扎眼的,它是页面接受的参数,接着往下看你就知道咋回事了。

在IndexController.class.php中的IndexController类添加函数:

public function hello($name='thinkphp'){
        $this->assign('name',$name);
        $this->display();
    }

然后访问http://localhost/tp3.2.3/index.php/Home/index/hello

这个显示结果其实就是刚才创建的hello.html。导致它显示出来的是这句代码:

$this->display();

而为什么显示的是hello.html而非张三.html或李四.html呢?很简单,因为它和hello()这个函数名字一样。对就是这么简单粗暴。当然,这是你不给display函数传参数的情况,这个框架就按默认值这么干了,传参数的情况以后再说。

你可能注意到,我定义的hello函数是有个默认参数的,是"thinkphp",所以页面显示了“hello thinkphp”。

那如果现在想让页面对我问好,说“hello 帅比”咋办呢?你可能已经知道答案了,输入http://localhost/tp3.2.3/index.php/Home/index/hello/name/帅比

就行了。

简单吧。

结语

第一次深夜写博客,还是有点儿意思的。主要是自己缕缕思路,加深一下理解吧,顺便整理整理研究了一晚上的thinkphp框架的成果。其实内容都来源于官方的快速入门文档:

http://www.kancloud.cn/thinkphp/thinkphp_quickstart/2138

居然写了一个小时。。

睡觉去咯!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值