Thinkphp框架其精髓就在于实现了MVC思想,其中M为模板、V为视图、C为控制器,模板一般是公共使用类,在涉及数据库时,一般会跟数据表同名,视图会和控制器类里的方法进行名字的一一对应。

下载及配置

官网(http://www.thinkphp.cn/)下载ThinkPHP5.0,将解压文件放在网站目录下的ATP5子目录下

如果要隐藏index.php且服务器为Apache则需要将public\.htaccess下内容替换为:

Options +FollowSymlinks -Multiviews

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

版本要求

php版本大于等于5.4

访问规则

http://localhost:8099/ATP5/public /模块/控制器/方法

其中http://localhost:8099/ATP5/public /为thinkphp的公共入口,模块的区分可以实现如管理员和用户的不同入口。

命名规则

模块名:全部小写

控制器名:首字母大写

方法名:全部小写

注意:

URL输入时不区分大小写,框架会自动根据标志转换,可在config里设置(url_convert' => false)

如果控制器名为驼峰式命名(如HelloWorld)访问时地址栏应用下划线处理(如 hello_world)

新建入口App

复制一份application,然后在public/index.php中修改对应的入口名字

建立MVC目录

命名规则:

模板(model):首字母大写

视图(view):全部小写

控制器(controller):首字母大写

显示错误信息和调试

打开应用的目录里的config.php文件配置:

app_debug 值为true则显示调试信息

show_error_msg 值为ture 则显示错误信息

CSS和JS及图片的地址引用

在视图目录下想要引用到一些资源文件,如css,js,图片等,是不支持使用把相关文件放到view目录下的,应该把资源文件放在public目录下,然后在App中的config.php里的view_ replace_str下添加资源文件的目录宏定义

// 视图输出字符串内容替换

'view_replace_str' => [

'__DSTYLE__'=>"/atp/public/static/library",

'__DIMG__'=>"/atp/public/img",

],

使用:

如果修改后在开发者工具发现数据使用依然是上一次更改的地址,说明有缓存在作怪,可以到 runtime\temp 目录下清除

简单的值匹配

视图代码:

--{$name1}--

--{$name2}--

控制器代码:

namespace app\index\controller;

//导入必要模块

use think\Controller;

class Xiao extends Controller

{

public function xiao2(){

$valuex1="匹配值1";

$valuex2="匹配值2";

//匹配,变量赋值

$this->assign("name1",$valuex1);

$this->assign("name2",$valuex2);

//渲染输出

//返回视图 fetch实参为空表示找函数同名的html,实参可以传递其它视图名称

return $this->fetch();

}

}

数组值的匹配

视图中获取

{$ff.1}

控制器

$valuex2=array("0","1","1");

$this->assign("ff",$valuex2);

return $this->fetch();

Volist的使用

该方法是thinkphp中很有趣的方法,其可以实现在视图文件中进行数组的循环遍历,最常会使用其进行数据库表格的遍历显示。

视图中的代码:

id用户名昵称备注

{volist name="listallh" id="vo"}

{$vo.id}{$vo.user}{$vo.name}{$vo.oo}

{/volist}

控制器代码:

$listall=array();

$listall[]=array("id"=>1,"user"=>"dong1","name"=>"dongxiaodong1","oo"=>"无");

$listall[]=array("id"=>2,"user"=>"dong2","name"=>"dongxiaodong2","oo"=>"无");

$listall[]=array("id"=>3,"user"=>"dong3","name"=>"dongxiaodong3","oo"=>"无");

$listall[]=array("id"=>4,"user"=>"dong4","name"=>"dongxiaodong4","oo"=>"无");

$this->assign('listallh',$listall);

return $this->fetch();

公共界面

如果多个页面需要使用到同一个HTML代码块,可以将代码块放到外面,其它界面直接通过引用即可

在view目录下创建自定义文件名字的文件夹(public_view),里面创建自定义文件名的HTML文件(menu.html),在需要的地方直接通过【{include file="public_view/menu"}】引入即可

创建公共文件

HTML内容

东小东内容匹配页

在其它页面中使用

东小东

{include file="public_view/menu"}

显示效果

到此这篇关于浅谈PHP之ThinkPHP框架使用详解的文章就介绍到这了,更多相关PHP ThinkPHP框架内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

php tp框架,浅谈PHP之ThinkPHP框架使用详解相关推荐

  1. java 变量初始化_浅谈Java变量的初始化顺序详解

    规则1(无继承情况下):对于静态变量.静态初始化块.变量.初始化块.构造器,它们的初始化顺序依次是 (静态变量.静态初始化块)>(变量.初始化块)>构造器 证明代码: public cla ...

  2. 计算机设备驱动的作用,浅谈电脑驱动程序的工作原理 详解电脑驱动程序意义...

    本文主要是关于电脑驱动程序的相关介绍,并着重对电脑驱动程序的工作原理及意义进行了详尽的阐述. 电脑驱动程序 1 驱动程序是什么 驱动程序的概念,驱动程序实际上是一段能让电脑与各种硬件设备通话的程序代码 ...

  3. 浅谈2D游戏设计模式2- WZ文件详解(UI.WZ)之MapLogin.img(1)

    玩过冒险岛的人都知道有一个WZ文件,那么这个WZ文件的内部是怎么样的呢,今天我就带大家一探究竟. 说实在的,我这是第一次接触WZ文件,但是却让我很震撼,为什么很震撼,因为这个居然是用VS2010写的! ...

  4. php视图查询的优势,ThinkPHP视图查询详解

    搜索热词 ThinkPHP提供的视图查询应用功能十分强大,用户利用视图查询功能可以将多个数据表的字段内容按需要进行指定和筛选,组织成一个基于这些数据表的视图模型,然后就可以通过该模型直接进行多表联合查 ...

  5. python setting.py_python基础教程:Django框架的中的setting.py文件说明详解

    这篇文章主要介绍了Django框架的中的setting.py文件说明详解,这个文件包含了所有有关这个Django项目的配置信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.加载数据库,数据库 ...

  6. Django框架的中的setting.py文件说明详解

    这篇文章主要介绍了Django框架的中的setting.py文件说明详解,这个文件包含了所有有关这个Django项目的配置信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.加载数据库,数据库 ...

  7. SSM框架整合:各种配置文件的整合和详解

    SSM框架整合:各种配置文件的整合和详解 前言 学习了ssm框架的整合之后,对于数量众多的配置文件,和各种不同的配置方式感到甚是头疼,接下来教给大家一个清晰明白的配置,分门别类的配置不同的xml文件. ...

  8. python基础教程:Django框架的中的setting.py文件说明详解

    这篇文章主要介绍了Django框架的中的setting.py文件说明详解,这个文件包含了所有有关这个Django项目的配置信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.加载数据库,数据库 ...

  9. layui数据表格解析html,layui框架table 数据表格的方法级渲染详解

    layui框架table 数据表格的方法级渲染详解 如下所示: //js 规范书写 var tst=table.render({ elem: '#test11' ,cols: [[ //标题栏 {ch ...

最新文章

  1. Adobe Achemy入门指南(二)
  2. 图像翻译、语义分割、域适应、图像检索、无监督学习cvpr2021
  3. Linux下给挂载U盘或者SD卡
  4. let/var——事实上var的设计可以看成JavaScript语言设计上的错误. 但是这种错误多半不能修复和移除, 以为需要向后兼容.||将let看成更完美的var
  5. STM32 电机教程 12 - BLDC 闭环电流控制
  6. (五)Java工具类ArrayUtils详解
  7. Linux 下搭建 Scala 开发环境
  8. linux eclipse 菜单,Ubuntu 16.04中的Eclipse Mars菜单栏选项失效
  9. Nginx——安装与虚拟主机配置(域名非80端口问题)
  10. Python 标准库 —— cgi/html
  11. VS建立Web网站 20141201
  12. 数学分析典型方法pdf下载_硬质合金刀具常识及使用方法 pdf下载 0700
  13. 计算机专业分数线最新,计算机专业近三年录取分数线分析
  14. 自我管理 - 希望2015年自己能够做到的几点目标
  15. Assignment写作抄袭常见形式怎么了解?
  16. DC-DC升压和降压电路电感参数选择详解
  17. Cadence Allegro打阵列过孔方法图文教程及视频演示
  18. 『中级篇』什么是Container(15)
  19. 用vue写了个瀑布流布局,看着还可以
  20. 基于Python的五子棋人机对战

热门文章

  1. python---常用快捷键
  2. 艾默生质量流量计因测量原理不同可分为多种系列
  3. 【超详细Django网站开发过程9】便利店管理系统之——管理员登录、注销功能
  4. ReadBook_Thinking_Method
  5. codeforces#1166F. Vicky's Delivery (Service并查集+启发式合并)
  6. flash-connect模块
  7. 全能pdf转换器注册码
  8. CSS 表格制作日历
  9. 基于自适应加权埃尔米特函数的波形建模研究(Matlab代码实现)
  10. 数米粒个数和测米粒大小