一、安装Composer
Composer 是 PHP 的一个依赖管理工具。它允许你申明项目所依赖的代码库,它会在你的项目中为你安装他们。
下载地址:https://getcomposer.org/Composer-Setup.exe
详细介绍可看这里 https://www.kancloud.cn/thinkphp/composer/35668
安装完成后在命令控制窗口(cmd)里打入“composer”看到如下界面说明安装成功
注意:最近composer
镜像存在问题,可以改成在命令行里输入下面地址然后回车。
Composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
二、安装tp5
如果你是第一次安装的话,在命令行下面,切换到你的WEB根目录(通常是www)下面并执行下面的命令:composer create-project topthink/think=5.1.* tp5 ,后面的tp5是项目名称,意思是在www下自动生成文件夹名称为tp5的,如果想命名其他可以把tp5改成其他名称。安装成功如下:
这里我是在zzp目录下执行安装命令,所以tp5会在zzp目录下,通常你们在www目录下执行就好。
现在只需要做最后一步来验证是否正常运行。在浏览器中输入地址:
http://localhost/tp5/public/, 如果浏览器输出如图所示:
三、Tp5目录结构
tp5 WEB部署目录(或者子目录)
├─application 应用目录
│ ├─common 公共模块目录(可以更改)
│ ├─module_name 模块目录(比如Index)
│ │ ├─common.php 模块函数文件
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录
│ │ ├─view 视图目录
│ │ ├─config 配置目录
│ │ └─ ... 更多类库目录
│ │
│ ├─command.php 命令行定义文件
│ ├─common.php 公共函数文件
│ └─tags.php 应用行为扩展定义文件
│
├─config 应用配置目录
│ ├─module_name 模块配置目录
│ │ ├─database.php 数据库配置
│ │ ├─cache 缓存配置
│ │ └─ ...
│ │
│ ├─app.php 应用配置
│ ├─cache.php 缓存配置
│ ├─cookie.php Cookie配置
│ ├─database.php 数据库配置
│ ├─log.php 日志配置
│ ├─session.php Session配置
│ ├─template.php 模板引擎配置
│ └─trace.php Trace配置
│
├─route 路由定义目录
│ ├─route.php 路由定义
│ └─... 更多
│
├─public WEB目录(对外访问目录)
│ ├─index.php 入口文件
│ ├─router.php 快速测试文件
│ └─.htaccess 用于apache的重写
│
├─thinkphp 框架系统目录
│ ├─lang 语言文件目录
│ ├─library 框架类库目录
│ │ ├─think Think类库包目录
│ │ └─traits 系统Trait目录
│ │
│ ├─tpl 系统模板目录
│ ├─base.php 基础定义文件
│ ├─convention.php 框架惯例配置文件
│ ├─helper.php 助手函数文件
│ └─logo.png 框架LOGO文件
│
├─extend 扩展类库目录
├─runtime 应用的运行时目录(可写,可定制)
├─vendor 第三方类库目录(Composer依赖库)
├─build.php 自动生成定义文件(参考)
├─composer.json composer 定义文件
├─LICENSE.txt 授权说明文件
├─README.md README 文件
├─think 命令行入口文件
标准的应用和模块目录结构如下:
├─application 应用目录(可设置)
│ ├─common 公共模块目录(可选)
│ ├─module1 模块1目录(比如Index)
│ │ ├─common.php 模块函数文件
│ │ ├─config 模块配置目录(可选)
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录(可选)
│ │ ├─view 视图目录(可选)
│ │ └─ ... 更多类库目录
│ │
│ ├─module2 模块2目录
│ │ ├─common.php 模块函数文件
│ │ ├─config 模块配置目录(可选)
│ │ ├─controller 控制器目录
│ │ ├─model 模型目录(可选)
│ │ ├─view 视图目录(可选)
│ │ └─ ... 更多类库目录
四、url访问规则
http://localhost/tp5/public/index.php/模块/控制器/操作
比如http://localhost/tp5/public/index.php/Index/index/hello就是Index模块下的Index控制器的hello方法。
五、控制器定义
控制器文件通常放在application/module/controller下面,类名和文件名保持大小写一致,并采用驼峰命名(首字母大写)。我们在application\index\controller文件夹下新建Index.php文件,输入下面代码:
<?php
namespace app\index\controller;
use think\Controller;
class Index extends Controller
{
public function hello()
{
return 'hello';
}
}
访问URL是:
http://localhost/tp5/public/index.php/index/index/hello
六、数据库配置
数据库配置文件在tp5(项目名称)/ config/ database.php中,根据自己的实际情况配置以下几个信息:
七、视图加载
<?php
namespace app\index\controller;
use think\Controller;
use think\DB;
class Index extends Controller
{
public function hello()
{
// 不带任何参数 自动定位当前操作的模板文件来加载
//系统会按照默认规则自动定位模板文件,其规则是:
//当前模块(index)/view/当前控制器名(小写index)/当前操作(小写hello).html
return $this->fetch();
}
}
八、视图赋值
可查看 https://www.kancloud.cn/manual/thinkphp5_1/354066
assign
方法
在控制器继承了系统的控制器基类的情况下,可以使用assign
方法进行模板变量赋值。
namespace index\app\controller;
class Index extends \think\Controller
{
public function hello()
{
// 模板变量赋值
$this->assign('name','ThinkPHP');
$this->assign('email','thinkphp@qq.com');
// 或者批量赋值
$this->assign([
'name' => 'ThinkPHP',
'email' => 'thinkphp@qq.com'
]);
// 模板输出
return $this->fetch();
}
}
在视图文件,我们只要写"{$name}"就是读取到“ThinkPHP”,写“{$email}”就能读取到“thinkphp@qq.com”
九、视图模板解析
可查看 https://www.kancloud.cn/manual/thinkphp5_1/354071
十、常用数据库查询
单条查询
// table方法必须指定完整的数据表名,下面查询id为1的单条数据
Db::table('think_user')->where('id',1)->find();
最终生成的SQL语句可能是:
SELECT * FROM `think_user` WHERE `id` = 1 LIMIT 1
列表查询
下面表示查询status为1的列表:
Db::table('think_user')->where('status',1)->select();
最终生成的SQL语句可能是:
SELECT * FROM `think_user` WHERE `status` = 1
添加
$data = [‘name’=> ‘张三’, sex=> '男'];
Db::name('user')->insert($data);
以上语句表示插入user表字段name为张三,sex为男的语句。
修改
Db::name('user')->where('id', 1)->update(['name' => '李四']);
表示把user表里id为1的数据,name改为李四。
删除
// 根据主键(默认是id)删除
Db::table('think_user')->delete(1);
Db::table('think_user')->delete([1,2,3]);
// 条件删除
Db::table('think_user')->where('id',1)->delete();
Db::table('think_user')->where('id','<',10)->delete();
最终生成的SQL语句可能是:
DELETE FROM `think_user` WHERE `id` = 1
DELETE FROM `think_user` WHERE `id` IN (1,2,3)
DELETE FROM `think_user` WHERE `id` = 1
DELETE FROM `think_user` WHERE `id` < 10
更多查询请看:
https://www.kancloud.cn/manual/thinkphp5_1/353999