thinkphp小结

一:thinkphp文件结构


Application目录下:


ThinkPHP目录下:


Conf目录下:


补充:

ThinkPHP中除了这个convention.php配置文件之外,还有其他的配置文件,但是convention.php这个文件是系统级别的配置文件,还有一个是应用级别的配置文件,最后还有一个分组级别的配置文件。

从作用范围上来说:

系统 应用 >分组

从优先级上说:

分组 应用 >系统


Library目录下:


Think目录下:



二:控制器

1.命名规则:控制名(英文首字母大写)+Controller关键词+.class.php

2.命名空间:第一:命名空间是在php5.3版本中引入的一个概念,所以ThinkPHP3.2.3要求大于等于5.3版本的php第二:命名空间本身跟目录没有关系,但是在ThinkPHP中命名的声明和使用必须跟目录挂钩


三:路由形式

1.路由:是指访问项目中具体某个方法的URL地址。

在ThinkPHP中系统提供了4种路由形式

• 普通形式路由

• Pathinfo形式路由

• Rewrite形式路由

• 兼容形式路由

路由形式在ThinkPHP系统中的配置文件是可以配置选择的,在ThinkPHP/Conf/convention.php中的'URL_MODEL'配置项有0,1,2,3四种选择,分别对应4种路由形式。

1.普通形式路由(get形式路由)

路由形式:http://网址/入库文件?m=分组名&c=控制器名&a=方法名&参数名=参数值

2.pathinfo路由形式(默认的,最常用的)

路由形式:http://网址/入口文件/分组名/控制器名/方法/参数名1/参数值1/参数名2/参数值2

3.rewrite路由形式

路由形式:http://网址/分组名/控制器名/方法/参数名1/参数值1/参数名2/参数值2

和ThinkPHP默认的路由形式相比就是只缺少了入口文件。注意:该路由形式不能直接使用,需要配置完成才能使用。这种路由形式需要Apache的支持,而除了Apache软件之外服务器软件还有nginx、lightd等等,所以第三种路由形式一般情况下不推荐使用。

4.兼容路由形式

路由形式:http://网址/入口文件?s=/分组名/控制器名/方法名/参数名1/参数值1

注意:兼容 路由形式只有1个参数,参数名是s,等于号后面的都是s参数的值

三:分组

分组:一般的项目都会根据某个功能的使用对象来区分代码,这个时候放到一起之后会形成一个文件夹,这个文件夹就可以称之为分组。分组就是我们通常所指的平台(前台、后台)。

例如ThinkPHP系统中Home目录就是一个分组目录。后期如果需要使用更多的分组,则需要自己去创建分组。通常我们会创建一个和Home分组同级的Admin分组做为后台。


四:控制器中的跳转

1.URL组装:Url组装就是根据某个规则,来组成一个url地址,这个功能就叫做url组装。

在ThinkPHP中,系统提供了一个封装的函数来处理url的组装,这个方法叫做U方法。在系统的函数库文件中(functions.php

U语法格式:U(‘URL路径’,参数数组);

通用格式:U('[分组名/控制器名/]方法名',array('参数名1' =>参数值1,'参数名2' => 参数值2));

2.系统跳转方法

成功:$this -> success(跳转提示,跳转地址,等待时间);

失败:$this -> error(跳转提示,跳转地址,等待时间);

跳转提示参数必须要有,后面的地址和时间可以没有,如果没有指定跳转地址,则跳转到上一页。


五:ThinkPHP中的视图

1.视图的创建:创建的位置需要是在分组目录下的View目录下与控制器同名的目录中

2.视图的展示:$this -> display();展示当前控制器下与当前请求方法名称一致的模版文件

$this -> display(‘模版文件名[不带后缀]’); 展示当前控制器下的指定模版文件

$this -> display(‘View目录下的目录名/模版文件名[不带后缀]’); 展示指定控制器目录下的指定模版文件

3.变量分配

在ThinkPHP中系统封装好了一个变量的分配方法,这个方法叫做assign。具体语法:

$this -> assign(‘模版中变量名’,$php中的变量名);

说明:一般情况两个参数的变量都是一样的。这样方便检查。


4.模板常量替换机制

在ThinkPHP中系统默认给我们提供以下几个常用的模版常量

__MODULE__:表示从域名后面开始一直到分组名结束的路由

__CONTROLLER__:表示从域名后面开始一直到控制器结束的路由

__ACTION__:表示从域名后面开始一直到方法名结束的路由

__PUBLIC__:站点根目录下的Public目录的路由

__SELF__:表示从域名后面开始一直到路由的最后(如果没有参数,则__SELF__和__ACTION__所表达的内容是一样的)

为了后期使用的方便,我们可以在配置文件中定义一个自定义的模版常量:例子:

//模板常量
'TMPL_PARSE_STRING' => array(
    '__ADMIN__' => __ROOT__.'/Public/Admin'
),


六:开启调试模式

调试模式是在我们开发阶段开启的,开发完成后要关闭的

1.在入口文件(index.php)的位置定义:define('APP_DEBUG',True);

2.在Application/Common/Conf/config.php里面添加配置项:'SHOW_PAGE_TRACE' => TRUE ;


网页右下角就会出现如上的小图标,点击小图标会出现:


里面有各种信息,方便调试。

还有在开发阶段,我们应该将错误信息显示出来,我们可以在调试模式开启的前提下,设置ThinkPHP/Conf/convention.php中的'SHOW_ERROR_MSG'设置为true.

七:关于配置

注:在开发的时候,不到万不得已不要去修改系统配置文件。可以将需要修改的配置项在分组/应用级别的配置文件中去定义!

1.ThinkPHP框架中所有配置文件的定义格式均采用返回PHP数组的方式;

2.3.2.2版本开始,配置文件增加yaml/json/xml/ini以及自定义格式支持(需要在入口文件出配置)。

3.配置加载的顺序:惯例配置->应用配置->模式配置->调试配置->状态配置->模块配置->扩展配置->动态配置,

后面的配置会覆盖之前的同名配置。

惯例配置:ThinkPHP/Conf/convention.php     整个系统的配置文件,不建议修改

应用配置:Application/Common/Conf/config.php     所有模块的公共配置文件

模式配置(可选)Application/Common/Conf/config_应用模式名称.php     仅在运行该模式下面才会加载

状态配置(可选):在入口文件定义:define('APP_STATUS','???'); 然后在Application/Common/Conf/???.php

模块配置(可选):每个模块会自动加载自己的配置文件(位于Application/当前模块名/Conf/config.php

也可以为应用模式单独定义配置文件 命名规范为:Application/当前模块名/Conf/config_应用模式名称.php(仅在运行该模式下面才会加载)。

模块还可以支持独立的状态配置文件 命名规范为:Application/当前模块名/Conf/应用状态.php

之前的方式都是通过预先定义配置文件的方式,而在具体的操作方法里面,我们仍然可以对某些参数进行动态配置(或者增加新的配置),主要是指那些还没有被使用的参数。

动态配置:设置新的值:C('参数名称','新的参数值');
扩展配置:可以支持自动加载额外的自定义配置文件,并且配置格式和项目配置一样。

// 加载扩展配置文件  
'LOAD_EXT_CONFIG' => 'user,db', 
假设扩展配置文件 user.phpdb.php分别用于用户配置和数据库配置,这样做的好处是哪怕以后关闭调试模式,你修改db配置文件后依然会自动生效。

4.读取配置

无论何种配置文件,定义了配置文件之后,都统一使用系统提供的C方法来读取已有的配置。

语法:获取已经设置的参数值:C('参数名称')

5.C配置方法支持批量配置

八:一些配置的小细节(持续补充ing...)

1.在ThinkPHP/Conf/convention.php中我们可以设置模板引擎普通标签标记

'TMPL_L_DELIM'=>'<{',
'TMPL_R_DELIM'=>'}>'

这样修改的好处在于:为了和jQuery区分



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值