架构 入口文件 2021-03-24 09:22:44 919阅读 619赞 ThinkPHP采用单一入口模式进行项目部署和访问,无论完成什么功能,一个应用都有一个统一(但不一定是唯一)的入口。应该说,所有应用都是从入口文件开始的,并且不同应用的入口文件是类似的。入口文件定义入口文件主要完成:定义框架路径、项目路径(可选)定义
架构 URL访问 2021-03-24 09:22:15 869阅读 878赞 URL设计ThinkPHP5.0在没有启用路由的情况下典型的URL访问规则是:http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/[参数名/参数值...]支持切换到命令行访问,如果切换到命令行模式下面的
架构 模块设计 2021-03-24 09:20:54 792阅读 630赞 5.0版本对模块的功能做了灵活设计,默认采用多模块的架构,并且支持单一模块设计,所有模块的命名空间均以app作为根命名空间(可配置更改)。目录结构标准的应用和模块目录结构如下:├─application
架构 命名空间 2021-03-24 09:19:45 708阅读 840赞 命名空间ThinkPHP1采用命名空间方式定义和自动加载类库文件,有效的解决了多模块和Composer类库之间的命名空间冲突问题,并且实现了更加高效的类库自动加载机制。如果不清楚命名空间的基本概念,可以参考PHP手册:PHP命名空间特别注意的是,如果
架构 自动加载 2021-03-24 09:19:13 752阅读 975赞 概述ThinkPHP5.0真正实现了按需加载,所有类库采用自动加载机制,并且支持类库映射和composer类库的自动加载。自动加载的实现由think\Loader类库完成,自动加载规范符合PHP的PSR-4。自动加载由于新版ThinkPHP完全采用了
架构 Traits引入 2021-03-24 09:18:44 703阅读 593赞 ThinkPHP 5.0开始采用trait功能(PHP5.4+)来作为一种扩展机制,可以方便的实现一个类库的多继承问题。trait是一种为类似 PHP 的单继承语言而准备的代码复用机制。trait为了减少单继承语言的限制,使开发人员能够自由
架构 API友好 2021-03-24 09:18:05 746阅读 832赞 新版ThinkPHP针对API开发做了很多的优化,并且不依赖原来的API模式扩展。数据输出新版的控制器输出采用Response类统一处理,而不是直接在控制器中进行输出,通过设置default_return_type或者动态设置不同类型的Respons
模板 模板定位 2021-03-24 09:16:09 638阅读 851赞 模板文件定义每个模块的模板文件是独立的,为了对模板文件更加有效的管理,ThinkPHP对模板文件进行目录划分,默认的模板文件定义规则是:视图目录/控制器名(小写)/操作名(小写)+模板后缀默认的视图目录是模块的view目录,框架的默认视图文件后缀是.
模板 模板标签 2021-03-24 09:15:35 803阅读 807赞 模板文件可以包含普通标签和标签库标签,标签的定界符都可以重新配置。普通标签普通标签用于变量输出和模板注释,普通模板标签默认以{ 和 } 作为开始和结束标识,并且在开始标记紧跟标签的定义,如果之间有空格或者换行则被视为非模
模板 变量输出 2021-03-24 09:15:06 631阅读 573赞 在模板中输出变量的方法很简单,例如,在控制器中我们给模板变量赋值:$view = new View();$view->name = 'thinkphp';return
模板 系统变量 2021-03-24 09:14:21 982阅读 980赞 系统变量输出普通的模板变量需要首先赋值后才能在模板中输出,但是系统变量则不需要,可以直接在模板中输出,系统变量的输出通常以**{$Think** 打头,例如:{$Think.server.script_name} // 输出$_S
模板 请求参数 2021-03-24 09:13:45 984阅读 669赞 模板支持直接输出Request请求对象的方法参数,用法如下:$Request.方法名.参数例如:{$Request.get.id}{$Request.param.name}以$Request.开头的变量输出会认为是系统Request请求对象的参数输出
模板 使用函数 2021-03-24 09:13:14 766阅读 809赞 我们往往需要对模板输出变量使用函数,可以使用:{$data.name|md5}编译后的结果是:<?php echo (md5($data['name'])); ?>如果函数有多个参数需要调用,
模板 使用默认值 2021-03-24 09:12:47 879阅读 827赞 我们可以给变量输出提供默认值,例如:{$user.nickname|default="这家伙很懒,什么也没留下"}对系统变量依然可以支持默认值输出,例如:{$Think.get.name|default="名称为空&qu
模板 使用运算符 2021-03-24 09:12:04 878阅读 875赞 我们可以对模板输出使用运算符,包括对“+”“-” “*” “/”和“%”的支持。例如:运算符使用示例+{$a+$b}-{$a-$b}*{$a*$b}/{$a/$b}%{$a%$b}++{$a++} 或 {++$a}--{$a--} 或 {--$a}综
模板 三元运算 2021-03-24 09:11:21 692阅读 550赞 模板可以支持三元运算符,例如:{$status? '正常' : '错误'}{$info['status']? $info['msg']
模板 原样输出 2021-03-24 09:10:52 814阅读 633赞 可以使用literal标签来防止模板标签被解析,例如:{literal} Hello,{$name}!{/literal}上面的{$name}标签被literal标签包含,因此并不会被模板引擎解析,而是保
模板 模板注释 2021-03-24 09:10:15 594阅读 785赞 模板支持注释功能,该注释文字在最终页面不会显示,仅供模板制作人员参考和识别。单行注释格式:{/* 注释内容 */ } 或 {// 注释内容 }例如:{// 这是模板注释内
模板 模板布局 2021-03-24 09:08:33 680阅读 864赞 ThinkPHP的模板引擎内置了布局模板功能支持,可以方便的实现模板布局以及布局嵌套功能。有三种布局模板的支持方式:第一种方式:全局配置方式这种方式仅需在项目配置文件中添加相关的布局模板配置,就可以简单实现模板布局功能,比较适用于全站使用相同布局的情
模板 模板继承 2021-03-24 09:08:04 578阅读 993赞 模板继承是一项更加灵活的模板布局方式,模板继承不同于模板布局,甚至来说,应该在模板布局的上层。模板继承其实并不难理解,就好比类的继承一样,模板也可以定义一个基础模板(或者是布局),并且其中定义相关的区块(block),然后继承(extend)该基础模