浅谈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 相关文章推荐
不用iconv库的gb2312与utf-8的互换函数
Oct 09 PHP
php初学者写及时补给skype用户充话费的小程序
Nov 02 PHP
phpMyAdmin 安装及问题总结
May 28 PHP
php preg_filter执行一个正则表达式搜索和替换
Feb 27 PHP
日常整理PHP中简单的图形处理(经典)
Oct 26 PHP
php生成4位数字验证码的实现代码
Nov 23 PHP
PHP+MySql+jQuery实现的&quot;顶&quot;和&quot;踩&quot;投票功能
May 21 PHP
详谈PHP中的密码安全性Password Hashing
Feb 04 PHP
Yii框架日志操作图文与实例详解
Sep 09 PHP
php7 参数、整形及字符串处理机制修改实例分析
May 25 PHP
php7连接MySQL实现简易查询程序的方法
Oct 13 PHP
PHP mkdir创建文件夹实现方法解析
Nov 13 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把空格、换行符、中文逗号等替换成英文逗号的正则表达式
2014/05/04 PHP
php防止伪造数据从地址栏URL提交的方法
2014/08/24 PHP
PHP使用feof()函数读文件的方法
2014/11/07 PHP
详解PHP对数组的定义以及数组的创建方法
2015/11/27 PHP
关于捕获用户何时点击window.onbeforeunload的取消事件
2011/03/06 Javascript
json原理分析及实例介绍
2012/11/29 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
2013/04/25 Javascript
Javascript无阻塞加载具体方式
2013/06/28 Javascript
一篇文章掌握RequireJS常用知识
2016/01/26 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
js+html制作简单日历的方法
2017/06/27 Javascript
详解vue-cli 接口代理配置
2017/12/13 Javascript
vue 组件使用中的一些细节点
2018/04/25 Javascript
浅谈ElementUI中switch回调函数change的参数问题
2018/08/24 Javascript
JS实现的图片选择顺序切换和循环切换功能示例【测试可用】
2018/12/28 Javascript
Vue 中可以定义组件模版的几种方式
2019/08/06 Javascript
swiperjs实现导航与tab页的联动
2020/12/13 Javascript
[08:06]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Elephant 选手采访
2021/03/11 DOTA
Python实现简单的代理服务器
2015/07/25 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
python垃圾回收机制(GC)原理解析
2019/12/30 Python
Python 一行代码能实现丧心病狂的功能
2020/01/18 Python
k-means 聚类算法与Python实现代码
2020/06/01 Python
Pytorch 解决自定义子Module .cuda() tensor失败的问题
2020/06/23 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
PyQt5中QSpinBox计数器的实现
2021/01/18 Python
如何用Django处理gzip数据流
2021/01/29 Python
详解如何通过H5(浏览器/WebView/其他)唤起本地app
2017/12/11 HTML / CSS
新加坡网上化妆品店:Best Buy World
2018/05/18 全球购物
预备党员入党思想汇报
2014/01/04 职场文书
社团招新策划书
2014/02/04 职场文书
股东合作协议书范本
2014/04/14 职场文书
销售活动策划方案
2014/08/26 职场文书
投标邀请书范本
2015/02/02 职场文书
大学生党员个人总结
2015/02/13 职场文书
php修改word的实例方法
2021/11/17 PHP