Thinkphp5.1 学习总结

ThinkPHP

ThinkPHP5的运行环境要求PHP5.6以上,兼容PHP8.0.


一、开发前的准备

1.1 编辑器的安装

推荐安装 Vscode 或者 sublime Text 编辑器去写php代码。

1.2 php集成开发环境安装

集成开发环境包括:

  • Linux、
  • Apache
  • MySQL
  • PHP

推荐安装phpStudy或者XAMPP 、Wampserver、LAMP、宝塔面板等集成工具搭建php环境。

1.3 composer安装

composer是 PHP 用来管理依赖(dependency)关系的工具。可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件

composer 1.xxx 被弃用了,要使用2.xxx的版本

Composer 最新稳定版本:2.7.2

1.4 php vscode插件


二、搭建项目

2.1 安装

1.以phpstudy集成环境为例,在项目根目录www文件下,用终端运行下面命令,会创建一个tp5的项目

composer create-project topthink/think=5.1.* tp5

2.更新框架

composer update topthink/framework

2.2 开发规范说明

1.类文件采用驼峰法命名(首字母大写)

例如控制器文件,就用驼峰法,还有模型-model、验证器-validate、中间件-middleware都是采用驼峰法命名
在这里插入图片描述

2.其他文件采用小写+下划线命名

例如视图文件(View),模板等都是采用小写+下划线命名
在这里插入图片描述

3.数据库和字段采用小写加下划线方式命名

数据表 小写加下划线方式命名
在这里插入图片描述

字段 ,小写加下划线方式命名
在这里插入图片描述


2.3配置

在项目根目录,创建一个.env环境变量文件,在开发时模拟环境变量配置,正式上线后关闭(改为false或者删除),.env文件中的配置参数定义格式采用ini方式

APP_DEBUG =  true
APP_TRACE =  true
DATABASE_USERNAME =  root
DATABASE_PASSWORD =  123456

3、 用命令生成目录文件

php think run  //启动内置服务器
php think version //查看版本
php think build --module admin //快速生成admin模块
php think make:controller admin/User //生成admin模块的User控制器类
php think make:model admin/User //以生成admin模块的User模型类
php think make:validate admin/User //生成admin模块的User验证器类
php think make:middleware Auth //生成一个中间件类

4、模板

1.模板输出替换

在template.php配置文件中添加:

'tpl_replace_string'  =>  [
        '__STATIC__'=>'/static',
        '__ADMIN__' => '/static/admin',
        '__HOME__' => '/static/home',
 ],

在这里插入图片描述
在这里插入图片描述

2.常用的标签

循环标签

  • foreach 用于循环输出数组或者对象的属性
  • volist 用于查询数据集或者二维数组的结果输出
  • for

条件判断标签

  • switch
  • if
{foreach $list as $key=>$vo } 
    {$vo.id}:{$vo.name}
{/foreach}

{volist name="list" id="vo"}
{$vo.id}:{$vo.name}<br/>
{/volist}


{switch 变量 }
    {case value1 }输出内容1{/case}
    {case value2}输出内容2{/case}
    {default /}默认情况
{/switch}

{if ( $name == 1) OR ( $name > 100) } value1
{elseif $name == 2 /}value2
{else /} value3
{/if}
3.模板继承

模板继承是一项更加灵活的模板布局方式
每个区块由{block} {/block}标签组成

base.html文件

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>{block name="title"}标题{/block}</title>
</head>
<body>
{block name="menu"}菜单{/block}
{block name="left"}左边分栏{/block}
{block name="main"}主内容{/block}
{block name="right"}右边分栏{/block}
{block name="footer"}底部{/block}
</body>
</html>

index.html文件

{extend name="base" /}
{block name="title"}{$title}{/block}
{block name="main"}
{volist name="list" id="vo"}
	<a href="/new/{$vo.id}">{$vo.title}</a><br/>
	 {$vo.content}
	{/volist}
{/block}
{block name="footer"}
{__block__}
 @ThinkPHP 版权所有
{/block}

表示引用所继承模板对应区块的内容到这个位置,最终这个区块是合并后的内容
在这里插入图片描述

5、视图

1.模板渲染

1.fetch 渲染模板方法
2.view 助手函数
3.display 渲染内容

要使用fetch、display方法,必须继承基类Controller
fetch('[模板文件]'[,'模板变量(数组)'])
助手函数:不需要继承基类Controller
view('[模板文件]'[,'模板变量(数组)'])

return $this->fetch();
return view();
return $this->display();
2.模板赋值

传递数据到模板输出有下面几种方式:

  • assign 模板变量赋值
  • fetch/display 方法传入参数
  • view 助手函数
  • share 公共模板变量赋值
$this->assign([
    'list'  => $list,
    'count' => $count
]);


return $this->fetch('index', [
    'name'  => 'ThinkPHP',
    'email' => 'thinkphp@qq.com'
]);

return $this->display($content, [
    'name'  => 'ThinkPHP',
    'email' => 'thinkphp@qq.com'
]);

return view('index')->assign([
    'name'  => 'ThinkPHP',
    'email' => 'thinkphp@qq.com'
]);

6、请求对象

Request

think\Request
think\facade\Request
不可一起使用

Request有四种调用方式
第一种方式:构造方法注入 :
$this->request->param();
第二种方式:操作方法注入
index(Rquest $request){$request->param()}
第三种方式:Facade调用
Request::param();
第四种方式:助手函数
request()->param();

1.构造方法注入,如果继承了基类控制器(Controller),则直接使用$this->request

<?php

namespace app\index\controller;

use think\Controller;

class Index extends Controller
{
    
    public function index()
    {
		return $this->request->param('name');
    }    
}

2.在每个方法中使用依赖注入(操作方法注入)

<?php

namespace app\index\controller;

use think\Controller;
use think\Request;

class Index extends Controller
{
    
    public function index(Request $request)
    {
		return $request->param('name');
    }    
}

3.Facade调用

<?php

namespace app\index\controller;

use think\Controller;
use think\facade\Request;

class Index extends Controller
{
    
    public function index()
    {
		return Request::param('name');
    }    
}

4.助手函数

<?php

namespace app\index\controller;

use think\Controller;

class Index extends Controller
{

    public function index()
    {
        return request()->param('name');
    }
}
请求类型

method、isGet、isPost、isPut、isDelete、isAjax、isPjax、isJson、isMobile、isHead、isPatch、isOptions、isCli、isCgi

if(request()->isPost()){
return ture;
}

获取数据

从控制器获取视图提交的数据有两种方式:Request对象、input助手
1.request()->param()
2.input()

  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

js胡

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值