浅谈PHP之ThinkPHP框架使用详解


Posted in PHP onJuly 21, 2020

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):首字母大写

浅谈PHP之ThinkPHP框架使用详解

显示错误信息和调试

打开应用的目录里的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">

简单的值匹配

浅谈PHP之ThinkPHP框架使用详解

视图代码:

<!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中很有趣的方法,其可以实现在视图文件中进行数组的循环遍历,最常会使用其进行数据库表格的遍历显示。

浅谈PHP之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"}】引入即可

创建公共文件

浅谈PHP之ThinkPHP框架使用详解

HTML内容

<h2>东小东内容匹配页</h2>

在其它页面中使用

<h2>东小东</h2>
{include file="public_view/menu"}

显示效果

浅谈PHP之ThinkPHP框架使用详解

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

PHP 相关文章推荐
PHP5中的时间相差8小时的解决办法
Mar 28 PHP
轻松修复Discuz!数据库
May 03 PHP
php读取xml实例代码
Jan 28 PHP
php牛逼的面试题分享
Jan 18 PHP
解析PHP实现下载文件的两种方法
Jul 05 PHP
php编写批量生成不重复的卡号密码代码
May 14 PHP
php如何获取文件的扩展名
Oct 28 PHP
php自定义分页类完整实例
Dec 25 PHP
PHP+Ajax异步带进度条上传文件实例
Nov 01 PHP
php解析base64数据生成图片的方法
Dec 06 PHP
CodeIgniter框架基本增删改查操作示例
Mar 23 PHP
Laravel框架创建路由的方法详解
Sep 04 PHP
浅谈php常用的7大框架的优缺点
Jul 20 #PHP
KindEditor在php环境下上传图片功能集成的方法示例
Jul 20 #PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
Jul 19 #PHP
PHP+MySql实现一个简单的留言板
Jul 19 #PHP
PHP8.0新功能之Match表达式的使用
Jul 19 #PHP
PHP程序守护进程化实现方法详解
Jul 16 #PHP
PHP如何获取Cookie并实现模拟登录
Jul 16 #PHP
You might like
提高PHP编程效率的53个要点(经验小结)
2010/09/04 PHP
ThinkPHP的Widget扩展实例
2014/06/19 PHP
php实现按照权重随机排序数据的方法
2015/01/09 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
php实现分页功能的详细实例方法
2019/09/29 PHP
javascript 控制弹出窗口
2007/04/10 Javascript
jQuery chili图片远处放大插件
2009/11/30 Javascript
70+漂亮且极具亲和力的导航菜单设计国外网站推荐
2011/09/20 Javascript
javascript管中窥豹 形参与实参浅析
2011/12/17 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
jQuery将多条数据插入模态框的示例代码
2014/09/25 Javascript
javascript中基本类型和引用类型的区别分析
2015/05/12 Javascript
javascript实现表格增删改操作实例详解
2015/05/15 Javascript
JavaScript预解析及相关技巧分析
2016/04/21 Javascript
Vuex之理解state的用法实例
2017/04/19 Javascript
Vue组件之全局组件与局部组件的使用详解
2017/10/09 Javascript
关于HTTP传输中gzip压缩的秘密探索分析
2018/01/12 Javascript
layui checkbox默认选中,获取选中值,清空所有选中项的例子
2019/09/02 Javascript
TypeScript之调用栈的实现
2019/12/31 Javascript
django定期执行任务(实例讲解)
2017/11/03 Python
python基于twisted框架编写简单聊天室
2018/01/02 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
selenium+python 对输入框的输入处理方法
2018/10/11 Python
对Python2与Python3中__bool__方法的差异详解
2018/11/01 Python
简单了解Python生成器是什么
2019/07/02 Python
用python写一个定时提醒程序的实现代码
2019/07/22 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
Python爬虫入门有哪些基础知识点
2020/06/02 Python
OpenCV 之按位运算举例解析
2020/06/19 Python
python des,aes,rsa加解密的实现
2021/01/16 Python
美国电子产品折扣网站:Daily Steals
2017/05/20 全球购物
网友共享的几个面试题关于Java和Unix等方面的
2016/09/08 面试题
酒店采购员岗位职责
2014/03/14 职场文书
学生鉴定评语大全
2014/05/05 职场文书
公司年会策划方案
2014/05/17 职场文书
python 标准库原理与用法详解之os.path篇
2021/10/24 Python