首页 > 编程语言 >thinkphp 官网教程

thinkphp 官网教程

时间:2022-10-11 21:32:01浏览次数:73  
标签:文件 教程 php 缓存 路由 thinkphp 官网 目录 模板

thinkphp 官网教程:​​https://sites.thinkphp.cn/1556331​

1、thinkphp 各个版本区别

ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架,目前 thinkphp 总共给出 4 个官方手册: 

thinkphp 官网教程_php

  • ThinkPHP 3.2.3
  • ThinkPHP 5.0:一个颠覆和重构版本,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化,包括路由、日志、异常、模型、数据库、模板引擎和验证等模块都已经重构,不适合原有3.2项目的升级,请慎重考虑商业项目升级,但绝对是新项目的首选(无论是WEB还是API开发)。目前最新版本为V5.0.24。V5.0版本目前进入BUG及安全维护阶段,不再进行功能升级!(BUG修正截止时间为2019年1月1日 安全更新截止间2020年1月1日)
  • ThinkPHP 5.1:在5.0的基础上对底层架构做了进一步的改进,引入新特性,并提升版本要求。ThinkPHP5.1 运行环境要求 PHP5.6+。不支持5.0的无缝升级,5.1.*版本基本上可以支持无缝升级。
  • ThinkPHP 6.0:基于精简核心和统一用法两大原则在5.1的基础上对底层架构做了进一步的优化改进,并更加规范化。由于引入了一些新特性,ThinkPHP6.0运行环境要求PHP7.1+,不支持5.1的无缝升级。

2、thinkphp 快速入门

ThinkPHP 官方入门系列教程:​​https://www.kancloud.cn/special/thinkphp5_quickstart​

thinkphp 官网教程_composer_02

3、ThinkPHP V5.0 完全开发手册

不能替代教程,而是作为工具参考,学习的话新手建议先阅读官方的 《 ​5.0入门系列教程

ThinkPHP V5.0 完全开发手册:​​https://www.kancloud.cn/manual/thinkphp5/118003​

thinkphp 官网教程_composer_03

4、安装

5.1 版本开始 ( 包括 5.1 ),官网不再提供下载版本,使用 Composer 或者 git 方式安装和更新。

方法 1:官网下载安装 ( 只支持 5.0 以前的版本 )

获取 ThinkPHP 的方式很多,官方网站(​​http://thinkphp.cn​​​)提供了​​稳定版本​​或者带扩展完整版本的下载。

官网的下载版本不一定是最新版本,git 版本获取的才是保持更新的版本。

thinkPHP 5.0 拆分为多个仓库,主要包括:

  • 应用项目:​​https://github.com/top-think/think​
  • 核心框架:​​https://github.com/top-think/framework​

方法 2:Composer 安装

thinkphp 5.1 安装:​​https://www.kancloud.cn/manual/thinkphp5_1/353948​

thinkphp 6.0 安装:​​https://www.kancloud.cn/manual/thinkphp6_0/1037481​

方法 3:通过 git 安装

ThinkPHP 5.1 通过 git 安装步骤:​​https://www.kancloud.cn/manual/thinkphp5_1/353948​

​ThinkPHP5.1​​主要分为应用和核心两个仓库,主要包括:

  • 应用项目:https://github.com/top-think/think
  • 核心框架:https://github.com/top-think/framework

6.0 版本开始,必须通过 Composer 方式安装和更新,无法通过 Git 下载安装。

验证是否成功

无论采用什么方式获取的 ThinkPHP 框架,现在只需要做最后一步来验证是否正常运行。

我本地 网站根目录

thinkphp 官网教程_缓存_04

在浏览器中输入地址:​http://127.0.0.1/thinkphp_5_0_24_with_extend/public/index.php​

thinkphp 官网教程_php_05

浏览器显示如图,说明已经完成 ThinkPHP5 的安装!( 其实就是放到网站的根目录下 )

5、开发规范、目录结构

开发规范

ThinkPHP5遵循PSR-2命名规范和PSR-4自动加载规范,并且注意如下规范:

目录和文件

  • 目录使用小写+下划线;
  • 类库、函数文件统一以​​.php​​为后缀;
  • 类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致;
  • 类文件采用驼峰法命名(首字母大写),其它文件采用小写+下划线命名;
  • 类名和类文件名保持一致,统一采用驼峰法命名(首字母大写);

函数和类、属性命名

  • 类的命名采用驼峰法(首字母大写),例如​​User​​​、​​UserType​​​,默认不需要添加后缀,例如​​UserController​​​应该直接命名为​​User​​;
  • 函数的命名使用小写字母和下划线(小写字母开头)的方式,例如​​get_client_ip​​;
  • 方法的命名使用驼峰法(首字母小写),例如​​getUserName​​;
  • 属性的命名使用驼峰法(首字母小写),例如​​tableName​​​、​​instance​​;
  • 以双下划线“__”打头的函数或方法作为魔术方法,例如​​__call​​​ 和​​__autoload​​;

常量和配置

  • 常量以大写字母和下划线命名,例如​​APP_PATH​​​和​​THINK_PATH​​;
  • 配置参数以小写字母和下划线命名,例如​​url_route_on​​​ 和​​url_convert​​;

数据表和字段

  • 数据表和字段采用小写加下划线方式命名,并注意字段名不要以下划线开头,例如​​think_user​​​ 表和​​user_name​​字段,不建议使用驼峰和中文作为数据表字段命名。

应用类库命名空间规范

应用类库的根命名空间统一为app(不建议更改,可以设置​​app_namespace​​​配置参数更改,​​V5.0.8​​​版本开始使用​​APP_NAMESPACE​​​常量定义);
例如:​​​app\index\controller\Index​​​和​​app\index\model\User​​。

请避免使用PHP保留字(保留字列表参见 ​​PHP: 关键词列表 - Manual​​ )作为常量、类名和方法名,以及命名空间的命名,否则会造成系统错误。

目录结构

下载最新版框架后,解压缩到web目录下面,可以看到初始的目录结构如下:

project  应用部署目录
├─application 应用目录(可设置)
│ ├─common 公共模块目录(可更改)
│ ├─index 模块目录(可更改)
│ │ ├─config.php 模块配置文件
│ │ ├─common.php 模块函数文件
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ ├─view 视图目录
│ │ └─ ... 更多类库目录
│ ├─command.php 命令行工具配置文件
│ ├─common.php 应用公共(函数)文件
│ ├─config.php 应用(公共)配置文件
│ ├─database.php 数据库配置文件
│ ├─tags.php 应用行为扩展定义文件
│ └─route.php 路由配置文件
├─extend 扩展类库目录(可定义)
├─public WEB 部署目录(对外访问目录)
│ ├─static 静态资源存放目录(css,js,image)
│ ├─index.php 应用入口文件
│ ├─router.php 快速测试文件
│ └─.htaccess 用于 apache 的重写
├─runtime 应用的运行时目录(可写,可设置)
├─vendor 第三方类库目录(Composer)
├─thinkphp 框架系统目录
│ ├─lang 语言包目录
│ ├─library 框架核心类库目录
│ │ ├─think Think 类库包目录
│ │ └─traits 系统 Traits 目录
│ ├─tpl 系统模板目录
│ ├─.htaccess 用于 apache 的重写
│ ├─.travis.yml CI 定义文件
│ ├─base.php 基础定义文件
│ ├─composer.json composer 定义文件
│ ├─console.php 控制台入口文件
│ ├─convention.php 惯例配置文件
│ ├─helper.php 助手函数文件(可选)
│ ├─LICENSE.txt 授权说明文件
│ ├─phpunit.xml 单元测试配置文件
│ ├─README.md README 文件
│ └─start.php 框架引导文件
├─build.php 自动生成定义文件(参考)
├─composer.json composer 定义文件
├─LICENSE.txt 授权说明文件
├─README.md README 文件
├─think 命令行入口文件

如果是mac或者linux环境,请确保​​runtime​​目录有可写权限

5.0的部署建议是​​public​​​目录作为web目录访问内容,其它都是web目录之外,当然,你必须要修改​​public/index.php​​中的相关路径。如果没法做到这点,请记得设置目录的访问权限或者添加目录列表的保护文件。

router.php用于php自带webserver支持,可用于快速测试
启动命令:php -S localhost:8888 router.php

5.0版本自带了一个完整的应用目录结构和默认的应用入口文件,开发人员可以在这个基础之上灵活调整。

上面的目录结构和名称是可以改变的,尤其是应用的目录结构,这取决于你的入口文件和配置参数。

由于ThinkPHP5.0的架构设计对模块的目录结构保留了很多的灵活性,尤其是对于用于存储的目录具有高度的定制化,因此上述的目录结构仅供建议参考。

架构

​架构总览

生命周期

入口文件

URL访问

模块设计

命名空间

自动加载

Traits引入

API友好

配置

ThinkPHP提供了灵活的全局配置功能,采用最有效率的PHP返回数组方式定义,支持惯例配置、公共配置、模块配置、扩展配置、场景配置、环境变量配置和动态配置。

对于有些简单的应用,你无需配置任何配置文件,而对于复杂的要求,你还可以扩展自己的独立配置文件。

系统的配置参数是通过静态变量全局存取的,存取方式简单高效。

配置功能由​​\think\Config​​类完成。

​配置目录

配置格式

配置加载

读取配置

动态配置

独立配置

配置作用域

环境变量配置

路由

路由功能由​​\think\Route​​类完成。

概述

由于​​ThinkPHP5.0​​默认采用的URL规则是:

​http://server/module/controller/action/param/value/​​...

路由的作用是简化URL访问地址,并根据定义的路由类型做出正确的解析。

新版的路由功能做了大量的增强,包括:

  • 支持路由到模块的控制器/操作、控制器类的方法、闭包函数和重定向地址,甚至是任何类库的方法;
  • 闭包路由的增强;
  • 规则路由支持全局和局部变量规则定义(正则);
  • 支持路由到任意层次的控制器;
  • 子域名路由功能改进;
  • 支持路由分组并支持分组参数定义;
  • 增加资源路由和嵌套支持;
  • 支持使用行为或者自定义函数检测路由规则;

ThinkPHP5.0的路由支持三种方式的URL解析规则。

5.0的路由是针对应用而不是针对模块,因此路由的设置也是针对应用下面的所有模块,如果希望不同的模块区分不同的设置(例如某些模块需要关闭路由,某些模块需要强制路由等),需要给该模块增加单独的入口文件,并作如下修改:

// 定义项目路径
define('APP_PATH', __DIR__ . '/../application/');
// 加载框架基础文件
require __DIR__ . '/../thinkphp/base.php';
// 绑定当前入口文件到admin模块
\think\Route::bind('admin');
// 关闭admin模块的路由
\think\App::route(false);
// 执行应用
\think\App::run()->send();

​V5.0.21+​​版本开始,支持了路由解析缓存。

在配置文件中 设置开启

    // 开启路由解析缓存
'route_check_cache' => true,

路由模式

路由定义

批量注册

变量规则

组合变量

路由参数

路由地址

资源路由

快捷路由

路由别名

路由分组

MISS路由

闭包支持

路由绑定

绑定模型

域名路由

URL生成

控制器

​控制器定义​​​​控制器初始化​​​​前置操作​​​​跳转和重定向​​​​空操作​​​​空控制器​​​​多级控制器​​​​分层控制器​​​​Rest控制器​​​​自动定位控制器​​​​资源控制器​

控制器定义

控制器初始化

前置操作

跳转和重定向

空操作

空控制器

多级控制器

分层控制器

Rest控制器

自动定位控制器

资源控制器

请求

​请求信息​​​​输入变量​​​​更改变量​​​​请求类型​​​​请求伪装​​​​HTTP头信息​​​​伪静态​​​​方法注入​​​​属性注入​​​​参数绑定​​​​依赖注入​​​​请求缓存​

请求信息

输入变量

更改变量

请求类型

请求伪装

HTTP头信息

伪静态

方法注入

属性注入

参数绑定

依赖注入

请求缓存

数据库

新版的数据库进行了重构,主要特性包括:

  • 类拆分为Connection(连接器)/Query(查询器)/Builder(SQL生成器)
  • 新的查询语法
  • 闭包查询和闭包事务
  • Query对象查询
  • 链式操作
  • 数据分批处理
  • 数据库SQL执行监听
  • ​数据库​

连接数据库

基本使用

查询构造器

查询事件

事务操作

监听SQL

存储过程

数据集

分布式数据库

模型

新版的模型进行了重构,更加对象化操作,包括关联模型的重构,主要特性包括:

  • 完全对象式访问
  • 支持静态调用(查询)
  • 支持读取器/修改器
  • 时间戳字段自动写入
  • 对象/数组访问
  • JSON序列化
  • 模型事件触发
  • 命名范围
  • 类型自动转换
  • 数据验证和自动完成
  • 关联查询/操作
  • 关联预载入
  • ​模型​

视图

​视图实例化​​​​模板引擎​​​​模板赋值​​​​模板渲染​​​​输出替换​

视图实例化

模板引擎

模板赋值

模板渲染

输出替换

模板

主要讲述了如何使用内置的模板引擎来定义模板文件,以及使用加载文件、模板布局和模板继承等高级功能。

ThinkPHP内置了一个基于XML的性能卓越的模板引擎,这是一个专门为ThinkPHP服务的内置模板引擎,使用了XML标签库技术的编译型模板引擎,支持两种类型的模板标签,使用了动态编译和缓存技术,而且支持自定义标签库。其特点包括:

  • 支持XML标签库和普通标签的混合定义;
  • 支持直接使用PHP代码书写;
  • 支持文件包含;
  • 支持多级标签嵌套;
  • 支持布局模板功能;
  • 一次编译多次运行,编译和运行效率非常高;
  • 模板文件和布局模板更新,自动更新模板缓存;
  • 系统变量无需赋值直接输出;
  • 支持多维数组的快速输出;
  • 支持模板变量的默认值;
  • 支持页面代码去除Html空白;
  • 支持变量组合调节器和格式化功能;
  • 允许定义模板禁用函数和禁用PHP语法;
  • 通过标签库方式扩展。

每个模板文件在执行过程中都会生成一个编译后的缓存文件,其实就是一个可以运行的PHP文件。

内置的模板引擎支持普通标签和XML标签方式两种标签定义,分别用于不同的目的:

标签类型

描述

普通标签

主要用于输出变量和做一些基本的操作

XML标签

主要完成一些逻辑判断、控制和循环输出,并且可扩展

这种方式的结合保证了模板引擎的简洁和强大的有效融合。

日志

错误和调试

​调试模式​​​​异常处理​​​​抛出异常​​​​Trace调试​​​​变量调试​​​​性能调试​​​​SQL调试​​​​远程调试​​​​404页面​

调试模式

异常处理

抛出异常

Trace调试

变量调试

性能调试

SQL调试

远程调试

404页面

验证

​验证器​​​​验证规则​​​​错误信息​​​​验证场景​​​​控制器验证​​​​模型验证​​​​内置规则​​​​静态调用​​​​表单令牌​

验证器

验证规则

错误信息

验证场景

控制器验证

模型验证

内置规则

静态调用

表单令牌

安全

​输入安全​​​​数据库安全​​​​上传安全​​​​其它安全建议​

输入安全

数据库安全

上传安全

其它安全建议

杂项

缓存

Session

Cookie

多语言

分页

上传

验证码

图像处理

文件处理

单元测试

扩展

​函数​​​​类库​​​​行为​​​​驱动​​​​Composer包​​​​SAE​​​​标签扩展​

函数

类库

行为

驱动

Composer包

SAE

标签扩展

命令行

ThinkPHP5.0支持​​Console​​应用,通过命令行的方式执行一些URL访问不方便或者安全性较高的操作。

我们可以在命令行下面,切换到应用根目录,然后执行​​php think​​,会出现下面的提示信息:

>php think
Think Console version 0.1

Usage:
command [options] [arguments]

Options:
-h, --help Display this help message
-V, --version Display this console version
-q, --quiet Do not output any message
--ansi Force ANSI output
--no-ansi Disable ANSI output
-n, --no-interaction Do not ask any interactive question
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug

Available commands:
build Build Application Dirs
clear Clear runtime file
help Displays help for a command
list Lists commands
make
make:controller Create a new resource controller class
make:model Create a new model class
optimize
optimize:autoload Optimizes PSR0 and PSR4 packages to be loaded with classmaps too, good for production.
optimize:config Build config and common file cache.
optimize:route Build route cache.

​console​​命令的执行格式一般为:

>php think 指令 参数

下面介绍下系统自带的几个命令,包括:

指令

描述

build

自动生成目录和文件

help

帮助

list

指令列表

clear

清除缓存指令

make:controller

创建控制器文件

make:model

创建模型文件

optimize:autoload

生成类库映射文件

optimize:config

生成配置缓存文件

optimize:route

生成路由缓存文件

optimize:schema

生成数据表字段缓存文件

更多的指令可以自己扩展。

自动生成目录结构

创建类库文件

生成类库映射文件

生成路由缓存

清除缓存文件

生成配置缓存文件

生成数据表字段缓存

自定义命令行

部署

​虚拟主机环境​​​​Linux 主机环境​​​​URL重写​

虚拟主机环境

Linux 主机环境

URL重写

附录

​配置参考​​​​常量参考​​​​助手函数​​​​升级指导​​​​更新日志​

配置参考

常量参考

助手函数

升级指导

更新日志



标签:文件,教程,php,缓存,路由,thinkphp,官网,目录,模板
From: https://blog.51cto.com/csnd/5748097

相关文章

  • rsync用法教程(已验证)
    一、简介rsync是一个常用的Linux应用程序,用于文件同步。它可以在本地计算机与远程计算机之间,或者两个本地目录之间同步文件(但不支持两台远程计算机之间的同步)。它也......
  • VRay 5.2 for Rhino 6-8软件安装包和安装教程
    VRay5.2forRhino6-8软件简介:VRay5.2forRhino6-8是一款专为犀牛软件用户打造的增强渲染器插件,它可以直接被使用于Rhino典型的工作流程中,其中所展现的高效能、高稳定......
  • PCL 入门教程 - 官方文档翻译
    介绍以下链接描述了一组基本PCL教程。请注意,他们的源代码可能已经作为PCL常规版本的一部分提供,因此在开始复制和粘贴代码之前请检查那里。下面的教程列表是根据git存储库......
  • idea中,解决maven报红、安装idea教程及idea启动慢的解决办法(从maven角度)
    idea中,解决maven报红解决前提首先要检查maven配置是否正确,有私服、阿里公共仓等,默认国外的会很慢maven仓库实际已经下载了全部依赖但idea依然显示找不到依赖解决方法剪切po......
  • 开目3DCAPP三维装配工艺设计基础教程
    ★行业专家倾力推荐★武汉开目公司官方指定教程★赠送开目3DCAPP-A体验版安装文件,让您率先体验其强大的性能★70个视频操作案例及全书的样例素材文件,让学习更为快捷、高效【......
  • 40. JS调试(Debug)教程[简明版]
    1.前言在JavaScript开发过程中,代码可能存在一些语法或者逻辑上的错误,导致程序不能得到我们想要的结果,这时就需要我们找到并修复这些错误,我们将查找和修复错误的过程称......
  • 网安软件:Xshell和XFTP官网免费版本
    ​​https://www.xshell.com/zh/free-for-home-school/​​1、​​点我最快获取软件​​2、​​点我获悉三点声明​​注意:仅需按要求提供一个邮箱即可!......
  • java 中级进阶高级 java 23种设计模式 视频教程 详细介绍+代码详解 +应用场景分析+
    ​​​​java中级进阶高级23种设计模式详细介绍+代码详解2019-04-06日最新更新蒋浩宇技术总监/CTO/高级工程师/技术专家主要讲解关于java、python、c++、前段、html5、jq......
  • JSP实用教程 PDF 下载
    下载地址:https://kohler.lanzouv.com/iJVIn0dm49gf访问密码:公众号:愚生浅末回复1011获取。......
  • PS新手教程-如何使用PS去除脖颈纹?
    如何使用PS去除脖颈纹?给大家介绍如何使用PS去除脖颈纹,一起来看看吧。1.首先将图片放大。可以按住alT键滚动滚轮。2.消除颈纹,建议选用工具栏中的修补工具,点击选题。3.......