Thinkphp框架其精髓就在于实现了MVC思想,其中M为模板、V为视图、C为控制器,模板一般是公共使用类,在涉及数据库时,一般会跟数据表同名,视图会和控制器类里的方法进行名字的一一对应。
下载及配置
官网(http://www.thinkphp.cn/)下载ThinkPHP5.0,将解压文件放在网站目录下的ATP5子目录下
默认主页:http://localhost:8099/ATP5/public/index.php
如果要隐藏index.php且服务器为Apache则需要将public\.htaccess下内容替换为:
<IfModule mod_rewrite.c> Options +FollowSymlinks -Multiviews RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1] </IfModule>
版本要求
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 目录下清除
<img src="__DIMG__/banner7.png"> <link rel="stylesheet" href="__DSTYLE__/donglayui/layui/css/layui.css" rel="external nofollow" media="all">
简单的值匹配
视图代码:
<!doctype html> <h1>--{$name1}--</h1> <h2>--{$name2}--</h2>
控制器代码:
<?php 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中很有趣的方法,其可以实现在视图文件中进行数组的循环遍历,最常会使用其进行数据库表格的遍历显示。
视图中的代码:
<table border="1"> <!--表格头--> <thead> <tr> <th>id</th> <th>用户名</th> <th>昵称</th> <th>备注</th> </tr> </thead> <!--表格内容--> <tbody> <!--循环遍历--> {volist name="listallh" id="vo"} <tr> <td>{$vo.id}</td> <td>{$vo.user}</td> <td>{$vo.name}</td> <td>{$vo.oo}</td> </tr> {/volist} </tbody> </table>
控制器代码:
$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内容
<h2>东小东内容匹配页</h2>
在其它页面中使用
<h2>东小东</h2> {include file="public_view/menu"}
显示效果
到此这篇关于浅谈PHP之ThinkPHP框架使用详解的文章就介绍到这了,更多相关PHP ThinkPHP框架内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!
本文向大家介绍浅谈laravel框架与thinkPHP框架的区别,包括了浅谈laravel框架与thinkPHP框架的区别的使用技巧和注意事项,需要的朋友参考一下 主要区别:(thinkPHP更适合国人的编码习惯) 1、渲染模版方式的不同: 在Laravel框架里,使用return view()来渲染模版; 而ThinkPHP里则使用了$this->display()的方式渲染模版; 2、在Lar
本文向大家介绍浅谈JavaScript 框架分类,包括了浅谈JavaScript 框架分类的使用技巧和注意事项,需要的朋友参考一下 如果是从内部架构与理念划分,目前JavaScript框架可以划分为5类。 第1种 出现的是以命名空间为导向的类库或框架,如创建一个数组用new Array(),生成一个对象用new Object(),完全的Java风格,因此我们就可以以某一对象为根,不断为它添加对象属
Python 语言简洁,开发者可以专注于逻辑的编写,因此重新造一遍轮子的代价非常之低, 这恐怕是 Python 社区之所以会出现如此众多 web 框架的主要原因 。 不过硬要评比最流行的 web 框架,当然还是要数 Django、Flask 和 Tornado, 三者在 GitHub 上的 star 数要远远超过其它竞争对手。 而且三者都特点鲜明,深受不同风格的开发者拥趸:Django 大而全,适
本文向大家介绍浅谈express.js框架中间件(middleware),包括了浅谈express.js框架中间件(middleware)的使用技巧和注意事项,需要的朋友参考一下 _express.js_作为_Node.js_的老牌框架,是现有框架中最全面的。然而在学习express除了那些api之外,对于框架最重要的就是__中间件__这个概念了。如果理解了,就可以把这个框架玩活了,项目开发肯定会
本文向大家介绍Thinkphp 框架扩展之类库扩展操作详解,包括了Thinkphp 框架扩展之类库扩展操作详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Thinkphp 框架扩展之类库扩展操作。分享给大家供大家参考,具体如下: 类库扩展 ThinkPHP的类库主要包括公共类库和应用类库,都是基于命名空间进行定义和扩展的。只要按照规范定义,都可以实现自动加载。 公共类库 公共类库通常是
本文向大家介绍浅谈ThinkPHP的URL重写,包括了浅谈ThinkPHP的URL重写的使用技巧和注意事项,需要的朋友参考一下 我想要的结果无非是去掉URL路径中的index.php 首先是配置.htaccess 因为我部署在apache上面,需要httpd.conf配置文件中找到LoadModule rewrite_module modules/mod_rewrite.so去掉前面的#,找到Al