thinkphp 实战记录0

本文深入解析ThinkPHP框架的结构与特性,涵盖应用目录、入口文件、控制器定义、路由配置及URL模式等内容,为开发者提供全面的技术指导。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个web程序 最少有 应用目录 php框架目录 入口文件

一个项目可以有多个应用和多个入口文件,但是一个入口只对应一个应用。

 

比如一个留言板项目  包括前台的Applicatin目录和入口index.php文件以及Admin目录和Admin.php入口组成的后台应用。

这两个应用都属于留言板项目

除了runtime目录。其他的每个目录都是一个模块。Common模块比较特殊。Controller文件夹中形如xxxController.class.php的文件就是一个控制器,每个控制器的public方法都是action动作。

配置文件的加载顺序是

右边的配置会覆盖左边的配置

公共配置在Application/Common/Conf/Config.php中

模块配置在Application/modulexxx/Cong/config.php中

 

路由一般分为 动态 静态 伪静态

动态 www.xxx.con/news/view.php?id=10

比如以asp php asp.net jsp结尾 然后后面戴? = &传递参数。

静态 www.xxx.con/news/view.php/id/10.html

伪静态是URL看起来像 静态的url.但是实质上是动态的。

Thinkphp支持

1普通模式

2pathinfo模式

3rewrite模式

4兼容模式

普通模式和兼容模式是动态url。rewrite和pathinfo模式区别在于有没有index.php。rewrite模式web服务器

会往web目录下的home/index/index查找默认首页。如果存在发送给浏览器。否则就是404

 

路由配置 首先是要启动路由功能

在通用配置app/Common/Conf/config.php中配置URL_ROUTER_ON=true

模块配置文件中配置URL_ROUTE_RULES进行配置。

路由一般定义是

"路由表达式 "=>"路由地址和参数"

或者 array("路由表达式","路由地址","传入参数")

Thinkphp只要匹配到一条默认的,那就终止匹配

前面就是通过:进行参数匹配

比如posts/:year/:month/:day 将后面的第一个变为参数year 第二个变为参数month 第三个变为day

静态路由不包含任何参数。效率比较高。用URL_MAP_RULES定义

 

4

控制器定义 xxxController.class.php 位于模块/Controller下就会自动加载。

比如继承Controller;

如果定义了一个方法是 关键字比如 php里面的list 那么就会出错这个时候需要action后缀

然后所有的function带上这个Action后缀就行。

为了审计方便。提供了 _before_ _after_在方法执行的前后调用

 

4.3 打开参数绑定以后 URL_PARAMS_BIND 以后。不需要用$_GET获取参数了。

比如Home/Index/bind/id/1

就获取了 id 是1 .有时候也要默认参数。 funciont bind($id=1) 这样访问 Home/Index/bind/id/就不会报错

 

4.4伪静态

配置URL_HTML_SUFFIX可以设置伪静态后缀。

4.5 windows上不区分大小写linux上区分。可以用URL_CASE_INSENSITEIVE配置

4.6 使用U函数产生 不同的URL模式

U产生的URL是根据URL_MODEL来的。

 

4.8 重定向 是Controller中的方法

跳转

跳转使用的模板可以修改

4.9 通过内置函数判断是否是 对应的方法。因为有时候需要根据不同的方式处理不同的逻辑。

 

例如

 

4.10 处理输入 用户的输入可能是不可信的。所以需要过滤等等。用 I 函数实现

4.11空操作  当php找不到方法会调用_empty方法 找不到控制器会调用EmptyController.class.php

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值