【ThinkPHP】ThinkPHP环境的安装与配置
ThinkPHP是⼀个免费开源的,快速、简单的⾯向对象的轻量级PHP开发框架。
严格来说,ThinkPHP⽆需安装过程,这⾥所说的安装其实就是把ThinkPHP框架放⼊WEB运⾏环境(前提是你的WEB运⾏环境已经OK),可以通过两种⽅式获取和安装ThinkPHP。
下载ThinkPHP安装
接下来进⼀步分析⼀下ThinkPHP5.0的框架结构:
⾸先是浏览⼀下ThinkPHP5.0的⽬录结构
tp5  WEB部署⽬录(或者⼦⽬录)
├─application          应⽤⽬录
│├─common            公共模块⽬录(可以更改)
│├─module_name        模块⽬录
││├─config.php      模块配置⽂件
││├─common.php      模块函数⽂件
││├─controller      控制器⽬录
││├─model          模型⽬录
││├─view            视图⽬录
││└─ ...            更多类库⽬录
││
│├─command.php        命令⾏⼯具配置⽂件
│├─common.php        公共函数⽂件
│├─config.php        公共配置⽂件
│├─route.php          路由配置⽂件
│├─tags.php          应⽤⾏为扩展定义⽂件
│└─database.php      数据库配置⽂件
├─public                WEB⽬录(对外访问⽬录)
│├─index.php          ⼊⼝⽂件
│├─router.php        快速测试⽂件
│└─.htaccess          ⽤于apache的重写
├─thinkphp              框架系统⽬录
│├─lang              语⾔⽂件⽬录
│├─library            框架类库⽬录
││├─think          Think类库包⽬录
││└─traits          系统Trait⽬录
怎么安装php
││
│├─tpl                系统模板⽬录
│├─base.php          基础定义⽂件
│├─console.php        控制台⼊⼝⽂件
│├─convention.php    框架惯例配置⽂件
│├─helper.php        助⼿函数⽂件
│├─l        phpunit配置⽂件
│└─start.php          框架⼊⼝⽂件
├─extend                扩展类库⽬录
├─runtime              应⽤的运⾏时⽬录(可写,可定制)
├─vendor                第三⽅类库⽬录(Composer依赖库)
├─build.php            ⾃动⽣成定义⽂件(参考)
├─composer.json        composer 定义⽂件
├─          授权说明⽂件
├─README.md            README ⽂件
├─think                命令⾏⼊⼝⽂件
~~~
serverName/index.php(或者其它应⽤⼊⼝⽂件)/模块/控制器/操作/参数/值…
然后我们来看看实际的⽂件:
这是ThinkPHP5.0的默认⽬录⽂件,我们可以看到模块为index,控制器也是index,操作也是index。
模块⽂件夹下⾯除了有controller⽂件夹外,还可以新增model⽂件夹(模型),view⽂件夹(视图),这些⽂件夹就是ThinkPHP5中MVC 架构的体现。
知道这些后,再结合上⾯URL的完整路径规则,那么可以知道访问“index操作”的完整路径是:
localhost/tp5/public/index.php/index/index/index
其中最右边的index代表操作,右边第⼆个index代表控制器,右边第三个index代码模块。
接下来笔者⽤⼀个登录功能来串联⼀下这些知识点:
项⽬结构
数据库
index.php⽂件
<?php
namespace app\index\controller;
use app\index\model\User;
use think\Db;
class Index
{
public function index()
{
return 'hello thinkphp5';
}
public function loginview(){
return view();
}
public function login(){
$name = $_GET["name"];
$pass = $_GET["password"];
$user = new User($name,$pass);
//查询数据库
$val = Db::table('userinfo')
->where('name',$user->GetName())
->where('pass',$user->GetPass())
->find();
$res = "";
if($val){//有该⽤户
$_SESSION["user"] = $user->GetName();
$res = "login successed";
}else{//没有该⽤户
$res = "login failed";
}
return$res;
}
}
index.php
User.php⽂件
<?php
namespace app\index\model;
class User{
private$name;
private$pass;
public function __construct($name,$pass){
$this->name = $name;
$this->pass = $pass;
}
public function GetName(){
return$this->name;
}
public function GetPass(){
return$this->pass;
}
}
User.php
loginview.html⽂件
<form action = "login">
<div><span>⽤户名:</span><input type="text" name="name"/></div>
<div><span>密码:</span><input type="password" name="password"/></div> <div><input type="submit" value="登录"/></div>
</form>
loginview.html
database.php⽂件
<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 thinkphp All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( /licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail>
// +----------------------------------------------------------------------
return [
/
/ 数据库类型
'type'            => 'mysql',
// 服务器地址
'hostname'        => '127.0.0.1',
// 数据库名
'database'        => 'test',
// ⽤户名
'username'        => 'root',
// 密码
'password'        => '',
// 端⼝
'hostport'        => '3306',
// 连接dsn
'dsn'            => '',
// 数据库连接参数
'params'          => [],
// 数据库编码默认采⽤utf8
'charset'        => 'utf8',
// 数据库表前缀
'prefix'          => '',
// 数据库调试模式
'debug'          => true,
/
/ 数据库部署⽅式:0 集中式(单⼀服务器),1 分布式(主从服务器)
'deploy'          => 0,
// 数据库读写是否分离主从式有效
'rw_separate'    => false,
// 读写分离后主服务器数量
'master_num'      => 1,
// 指定从服务器序号
'slave_no'        => '',
// 是否严格检查字段是否存在
'fields_strict'  => true,
// 数据集返回类型
'resultset_type'  => 'array',
// ⾃动写⼊时间戳字段
'auto_timestamp'  => false,
// 时间字段取出后的默认时间格式
'datetime_format' => 'Y-m-d H:i:s',
// 是否需要进⾏SQL性能分析
'sql_explain'    => false,
];
database.php
效果图:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。