THINKphp5.0框架


mvc

moudle(数据)+view(表现层)+controller(业务逻辑)

thinkphp5.0特点

中国人开发最符合国人习惯和思维方式

开源免费面向对象轻量级的开发框架

详细的日志信息非常严谨的错误检测的安全机制

减少了核心依赖扩展更加灵活支持命令行指令扩展

支持惰性加载及路由配置和自动加载的缓存机制

重构的数据库支持模型及关联

安装thinkphp

官网(虽然官网的确让人无语,但的确是官网)

注册后才能下载

http://www.thinkphp.cn/donate/download/id/1278.html

放到你配置好的wamp lamp lnmp....的www目录下(你网站的根目录下并且解压)

如下证明安装成功

该页在application/index/controller/index.php

thinkphp5.0目录结构

application	                                          应用目录
common         公共模块目录
index          模块目录
config.php 模块配置文件
common.php     模块函数文件
cotroller       控制器目录
model        模型目录
view         视图目录
command.php      命令行工具配置文件
common.php       应用公共函数文件
config.php        应用公共配置文件
database.php       数据库配置文件
tags.php         应用行为扩展
route.php 路由配置文件
extend            扩展类库目录
public            web部署目录
static           静态资源存放目录
index.php         应用入口文件
router.php         快速测试文件
.htaccess          用于重写apache
runtime            应用的运行时目录
vendor            第三方类库目录
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 命令行入口文件

url访问

Thinkphp5.0的url访问受路由决定,如果关闭路由或者没有匹配路由的情况下,则是基于http://服务器地址/index.php

模块配置在application/config.php

入口文件

用户请求的php文件,负责处理一个请求(注意不一定是url请求)的生命周期,最常见的入口文件是index.php,有时候也会为了某些特殊的需求而增加新的入口文件例如给后台模块单独设置的一个入口文件admin.php或者一个控制器程序入口think都属于入口文件。

应用入口文件

在public /index.php

开发规范

目录和文件

类库文件统一以.php为后缀

目录命名不做要求

类的文件名均以命名空间定义,并且命名空间的路径和类库文件所在路径一致

类名和类的文件名保持一致,统一采用驼峰法命名

函数和类,属性命名

函数的命名使用小写和下划线

方法的命名使用驼峰法,并且首字母小写

属性的命名使用驼峰法,并且首字母小写

常量和配置

常量以大写字母和下划线命名,例如APP_PATH和THINK_PATH;

配置参数以小写字母和下划线命名

数据表和字段

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

应用类库命名空间规范

应用类库的根命名空间统一为app(可以设置app_namespace配置参数更改);例如app\index\controller\Index和app\index\model\User;​

注意事项

请避免使用php保留字作为常量,类名和方法名以及命名空间的命名。

请求信息

request对象的作用是与客户端交互,收集客户端的from,cookie,超链接,或者服务器端的环境变量

tp5的request对象由think\Request类完成

$request=Request::instance();
或者
$request=request();

获取URL信息

domain()方法(返回当前网站域名)

echo '当前的域名是:'.$request->domain().'</br>';

更多如下(来自官方开发文档)

$request = Request::instance();
// 获取当前域名
echo 'domain: ' . $request->domain() . '<br/>';
// 获取当前入口文件
echo 'file: ' . $request->baseFile() . '<br/>';
// 获取当前URL地址 不含域名
echo 'url: ' . $request->url() . '<br/>';
// 获取包含域名的完整URL地址
echo 'url with domain: ' . $request->url(true) . '<br/>';
// 获取当前URL地址 不含QUERY_STRING
echo 'url without query: ' . $request->baseUrl() . '<br/>';
// 获取URL访问的ROOT地址
echo 'root:' . $request->root() . '<br/>';
// 获取URL访问的ROOT地址
echo 'root with domain: ' . $request->root(true) . '<br/>';
// 获取URL地址中的PATH_INFO信息
echo 'pathinfo: ' . $request->pathinfo() . '<br/>';
// 获取URL地址中的PATH_INFO信息 不含后缀
echo 'pathinfo: ' . $request->path() . '<br/>';
// 获取URL地址中的后缀信息
echo 'ext: ' . $request->ext() . '<br/>';

设置/获取 模块/控制器/操作名称

$request = Request::instance();
echo "当前模块名称是" . $request->module();
echo "当前控制器名称是" . $request->controller();
echo "当前操作名称是" . $request->action();

获取请求参数

$request = Request::instance();
echo '请求方法:' . $request->method() . '<br/>';
echo '资源类型:' . $request->type() . '<br/>';
echo '访问ip地址:' . $request->ip() . '<br/>';
echo '是否AJax请求:' . var_export($request->isAjax(), true) . '<br/>';
echo '请求参数:';
dump($request->param());
echo '请求参数:仅包含name';
dump($request->only(['name']));
echo '请求参数:排除name';
dump($request->except(['name']));

获取PARAM变量

echo $request->param('name');

使用助手函数实现

input('param.name');
input('param.');
或者
input('name');
input('');

伪静态

修改该文件

数据库

数据库配置

配置文件在(appliation/database.php)按照开发文档配置就好

对数据库增删改查操作

use think\Db;

建立好表之后Db::execute//修改

(不知道怎么建表的先去学数据库)

$result=Db::execute( 'insert into think_data (id,name,status) values(1,"陈国松",1); ');

Db::query//查询操作

修改数据

$result=Db::execute( 'update think_data set name="陈国松",status=1 where id=1;');

删除数据

$result=Db::execute( 'delete from think_data where id=1;');

查询数据

	$result =Db::query('select * from think_data;');

Thinkphp5.0第一篇的更多相关文章

  1. Thinkphp5.0第二篇

    查询构造器 //插入记录 $result=Db::table('think_data')->insert(['name'=>'张三','status'=>1]); //修改数据 $r ...

  2. Canvas绘制不规则图形,实现可拖动,编辑--V1.0第一篇

    目前的工作在做在线的标注工具,接触canvas一年了,各种绘制,基本上图像的交互canvas都可以完成,也写了几篇关于canvas的文章,遇到的问题也写博客上了,对于canvas有问题的朋友可以去看看 ...

  3. 从0开始搭建SQL Server AlwaysOn 第一篇(配置域控)

    从0开始搭建SQL Server AlwaysOn 第一篇(配置域控) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://www.cnb ...

  4. 分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置(单点安装)——第一篇

    分布式文件系统 FastDFS 5.0.5 & Linux CentOS 7 安装配置(单点安装)--第一篇 简介 首先简单了解一下基础概念,FastDFS是一个开源的轻量级分布式文件系统,由 ...

  5. Entity Framework 6.0 入门系列 第一篇

    Entity Framework 6.0 入门系列 第一篇 好几年前接触过一些ef感觉不是很好用,废弃.但是 Entity Framework 6.0是经过几个版本优化过的产物,性能和功能不断完善,开 ...

  6. Three.js 第一篇:绘制一个静态的3D球体

    第一篇就画一个球体吧 首先我们知道Three.js其实是一个3D的JS引擎,其中的强大之处就在于这个JS框架并不是依托于JQUERY来写的.那么,我们在写这一篇绘制3D球体的文章的时候,应该注意哪些地 ...

  7. 深入学习jQuery选择器系列第一篇——基础选择器和层级选择器

    × 目录 [1]id选择器 [2]元素选择器 [3]类选择器[4]通配选择器[5]群组选择器[6]后代选择器[7]兄弟选择器 前面的话 选择器是jQuery的根基,在jQuery中,对事件处理.遍历D ...

  8. 【第一篇】ASP.NET MVC快速入门之数据库操作(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  9. 深入理解ajax系列第一篇——XHR对象

    × 目录 [1]创建对象 [2]发送请求 [3]接收响应[4]异步处理[5]实例演示 前面的话 ajax是asynchronous javascript and XML的简写,中文翻译是异步的java ...

随机推荐

  1. Codeforces Round #506 (Div. 3) 1029 D. Concatenated Multiples

    题意: 给定n个数字,和一个模数k,从中选出两个数,直接拼接,问拼接成的数字是k的倍数的组合有多少个. 思路: 对于a,b两个数,假定len = length of (b),那么a,b满足条件就是a ...

  2. GRE Words Revenge AC自动机 二进制分组

    GRE Words Revenge 题意和思路都和上一篇差不多. 有一个区别就是需要移动字符串.关于这个字符串,可以用3次reverse来转换, 前面部分翻转一下, 后面部分翻转一下, 最后整个串翻转 ...

  3. 牛客多校第七场 C Bit Compression 思维

    链接:https://www.nowcoder.com/acm/contest/145/C来源:牛客网 A binary string s of length N = 2n is given. You ...

  4. 牛客网 湖南大学2018年第十四届程序设计竞赛重现赛 A game

    链接:https://www.nowcoder.com/acm/contest/125/A来源:牛客网 Tony and Macle are good friends. One day they jo ...

  5. Promise then中回调为什么是异步执行?Promise执行机制问题

    今天发现一个问题,看下方代码 let p = new Promise(function(resolve, reject) { resolve() console.log('); }); p.then( ...

  6. 第一章(Kotlin:定义和目的)

    实战Kotlin勘误 Kotlin 资源大全 Kotlin主要特征 目标平台 编写服务器端代码(典型的代表是Web应用后端) 创建Android设备上运行的移动应用(Android开发) 其他:可以让 ...

  7. 【Offer】[59-2] 【队列的最大值】

    题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 请定义一个队列并实现函数max得到队列里的最大值,要求函数max.push_back和 pop_front 的时间复杂度都是0(1). ...

  8. QRowTable表格控件(四)-效率优化之-优化数据源

    目录 一.开心一刻 二.问题分析 三.重写数据源 1.自己存储数据 2.重写data接口 四.比较 五.相关文章 原文链接:QRowTable表格控件(四)-效率优化之-优化数据源 一.开心一刻 一程 ...

  9. Java连载29-方法执行内存分析、方法重载

    一.JVM包含三个内存区:栈内存.堆内存.方法区内存 二.注意点 (1)在MyEclipse中字体是红色的是一个类的名字,并且这个类除了我们自定义的类是JavaSE类库中自带的 (2)其实JavaSE ...

  10. Maven学习归纳(二)——几个常用命令解析

    Maven的常用命令 第一次执行命令的时候,因为需要下载执行命令的基础环境,所以会从远程仓库下载该环境到本地仓库中 运行mvn命令,必须在pom.xml文件所在的目录 一. JavaProject的p ...