ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架。

严格来说,ThinkPHP无需安装过程,这里所说的安装其实就是把ThinkPHP框架放入WEB运行环境(前提是你的WEB运行环境已经OK),可以通过两种方式获取和安装ThinkPHP。

下载ThinkPHP安装

获取ThinkPHP的方式很多,官方网站(http://thinkphp.cn)是最好的下载和文档获取来源。
官网提供了稳定版本的下载:http://thinkphp.cn/down/framework.html
由于ThinkPHP5.0还在测试阶段,所以需要通过Git服务器下载,Git服务地址:https://github.com/top-think/think

下载或者使用GIT克隆到本地后,请(解压缩后)放置于你的WEB根目录下面的tp5子目录。

还有一种方式,就是通过Composer进行安装,这里不再介绍了,传送门:https://www.kancloud.cn/thinkphp/thinkphp5-guide/30549

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

在浏览器中输入地址:
http://localhost/tp5/public/
如果浏览器输出如图所示:

现在已经完成了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目录
│  │
│  ├─tpl                系统模板目录
│  ├─base.php           基础定义文件
│  ├─console.php        控制台入口文件
│  ├─convention.php     框架惯例配置文件
│  ├─helper.php         助手函数文件
│  ├─phpunit.xml        phpunit配置文件
│  └─start.php          框架入口文件

├─extend                扩展类库目录
├─runtime               应用的运行时目录(可写,可定制)
├─vendor                第三方类库目录(Composer依赖库)
├─build.php             自动生成定义文件(参考)
├─composer.json         composer 定义文件
├─LICENSE.txt           授权说明文件
├─README.md             README 文件
├─think                 命令行入口文件
~~~

其中入口文件就是 tp5\public\index.php,上面使用的http://localhost/tp5/public/地址,最开始加载的文件就是tp5\public\index.php文件,因为index.php是默认被加载的,所以完整的路径是http://localhost/tp5/public/index.php

上面的应用(application)目录,就是我们写逻辑代码的地方。

ThinkPHP5.0是基于MVC(模型-视图-控制器)的方式来组织的。

ThinkPHP5.0的URL访问受路由决定,如果关闭路由或者没有匹配路由的情况下,则是基于:

  1. http://serverName/index.php(或者其它应用入口文件)/模块/控制器/操作/参数/值…

然后我们来看看实际的文件:

这是ThinkPHP5.0的默认目录文件,我们可以看到模块为index,控制器也是index,操作也是index。

模块文件夹下面除了有controller文件夹外,还可以新增model文件夹(模型),view文件夹(视图),这些文件夹就是ThinkPHP5中MVC架构的体现。

知道这些后,再结合上面URL的完整路径规则,那么可以知道访问“index操作”的完整路径是:

  1. http://localhost/tp5/public/index.php/index/index/index

其中最右边的index代表操作,右边第二个index代表控制器,右边第三个index代码模块。

接下来笔者用一个登录功能来串联一下这些知识点:
项目结构

数据库

index.php文件

  1. <?php
  2. namespace app\index\controller;
  3. use app\index\model\User;
  4. use think\Db;
  5.  
  6. class Index
  7. {
  8. public function index()
  9. {
  10. return 'hello thinkphp5';
  11. }
  12.  
  13. public function loginview(){
  14. return view();
  15. }
  16.  
  17. public function login(){
  18. $name = $_GET["name"];
  19. $pass = $_GET["password"];
  20.  
  21. $user = new User($name,$pass);
  22.  
  23. //查询数据库
  24. $val = Db::table('userinfo')
  25. ->where('name',$user->GetName())
  26. ->where('pass',$user->GetPass())
  27. ->find();
  28.  
  29. $res = "";
  30. if($val){//有该用户
  31. $_SESSION["user"] = $user->GetName();
  32. $res = "login successed";
  33. }else{//没有该用户
  34. $res = "login failed";
  35. }
  36. return $res;
  37. }
  38. }

index.php

User.php文件

  1. <?php
  2. namespace app\index\model;
  3. class User{
  4. private $name;
  5. private $pass;
  6.  
  7. public function __construct($name,$pass){
  8. $this->name = $name;
  9. $this->pass = $pass;
  10. }
  11.  
  12. public function GetName(){
  13. return $this->name;
  14. }
  15.  
  16. public function GetPass(){
  17. return $this->pass;
  18. }
  19. }

User.php

loginview.html文件

  1. <form action = "login">
  2.  
  3. <div><span>用户名:</span><input type="text" name="name" /></div>
  4.  
  5. <div><span>密码:</span><input type="password" name="password"/></div>
  6.  
  7. <div><input type="submit" value="登录" /></div>
  8. </form>

loginview.html

database.php文件

  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | ThinkPHP [ WE CAN DO IT JUST THINK ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
  8. // +----------------------------------------------------------------------
  9. // | Author: liu21st <liu21st@gmail.com>
  10. // +----------------------------------------------------------------------
  11.  
  12. return [
  13. // 数据库类型
  14. 'type' => 'mysql',
  15. // 服务器地址
  16. 'hostname' => '127.0.0.1',
  17. // 数据库名
  18. 'database' => 'test',
  19. // 用户名
  20. 'username' => 'root',
  21. // 密码
  22. 'password' => '',
  23. // 端口
  24. 'hostport' => '3306',
  25. // 连接dsn
  26. 'dsn' => '',
  27. // 数据库连接参数
  28. 'params' => [],
  29. // 数据库编码默认采用utf8
  30. 'charset' => 'utf8',
  31. // 数据库表前缀
  32. 'prefix' => '',
  33. // 数据库调试模式
  34. 'debug' => true,
  35. // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
  36. 'deploy' => 0,
  37. // 数据库读写是否分离 主从式有效
  38. 'rw_separate' => false,
  39. // 读写分离后 主服务器数量
  40. 'master_num' => 1,
  41. // 指定从服务器序号
  42. 'slave_no' => '',
  43. // 是否严格检查字段是否存在
  44. 'fields_strict' => true,
  45. // 数据集返回类型
  46. 'resultset_type' => 'array',
  47. // 自动写入时间戳字段
  48. 'auto_timestamp' => false,
  49. // 时间字段取出后的默认时间格式
  50. 'datetime_format' => 'Y-m-d H:i:s',
  51. // 是否需要进行SQL性能分析
  52. 'sql_explain' => false,
  53. ];

database.php

然后使用 http://localhost/tp5/public/index.php/index/index/loginview 访问登录

效果图:

【ThinkPHP】ThinkPHP环境的安装与配置的更多相关文章

  1. 【C#】VS2015开发环境的安装和配置(二)2016-08-03更新

    分类:C#.VS2015.WPF.ASP.NET MVC.Android.iOS.Unity3D: 更新日期:2016-08-03 按下面介绍的步骤安装即可. 一.安装JDK和Android SDK ...

  2. 【C#】VS2015开发环境的安装和配置(一)2016-08-03更新

    分类:C#.VS2015.WPF.ASP.NET MVC.Android.iOS.Unity3D: 更新日期:2016-08-03 一.简介 为了避免网上乱七八糟的过时介绍,避免误导初学者,这次把至2 ...

  3. Java环境的安装与配置

    Java环境的安装与配置 环境:Java8,win10 推荐oracle官网oracle官网https://www.oracle.com/index.html下载JDK进行安装 选择自己需要的版本下载 ...

  4. Twitter Storm:单机环境的安装与配置

    Twitter Storm:单机环境的安装与配置 好久没写博客了,这一段时间一直被导师push着做毕业设计.由于目前的方向偏向于图像识别检索,毕设打算做一个基于分布式计算平台的图像检索系统,查阅相关资 ...

  5. Appium环境的安装与配置,Python测试脚本测试

    Appium自动化测试系列1 - Appium环境的安装与配置 发表于4个月前(2015-01-27 14:34)   阅读(803) | 评论(0) 0人收藏此文章, 我要收藏 赞0 寻找 会’偷懒 ...

  6. go 语言开发环境的安装与配置

    go 语言开发环境的安装与配置 编辑器选择 一直以来都是用sublime,但是听说sublime对于golang的插件支持并不是特别完善,并且VS Code只要在自身所带的扩展商店里安装go插件就可以 ...

  7. linux环境jdk安装及配置

    linux环境jdk安装及配置 linux环境jdk安装及配置 1.下载jkd( http://www.oracle.com/technetwork/java/javase/downloads/ind ...

  8. Ubuntu16.04下LAMP环境的安装与配置

    Ubuntu16.04下LAMP环境的安装与配置 最近做个实验需要用到Ubuntu环境的靶场,所以这里介绍下Ubuntu环境下LAMP的安装与配置,话不多说,我们gkd! 1.Apache2的安装 首 ...

  9. 在Linux环境下安装和配置phpmyadmin

    phpmyadmin是一种MySQL的图形化管理工具,该工具允许你在web界面上管理你的mysql数据库,不可谓不方便快捷. 此次安装与配置是在centos 6.4系统下,该系统已部署lnmp环境.关 ...

  10. Win7 32位系统下Java开发环境的安装及配置

    目录: Java JDK安装. Java JDK系统环境的配置. 配置常见问题的解决. Java JDK的安装 Java Jdk(Java Development Kit)Java开发不可缺少的环境, ...

随机推荐

  1. 动态规划状态压缩-poj1143

    题目链接:http://poj.org/problem?id=1143 题目描述: 代码实现: #include <iostream> #include <string.h> ...

  2. TF之AE:AE实现TF自带数据集AE的encoder之后decoder之前的非监督学习分类—Jason niu

    import tensorflow as tf import numpy as np import matplotlib.pyplot as plt #Import MNIST data from t ...

  3. sublime text3 中 python3编译出现中文乱码解决方法

    转 https://blog.csdn.net/Bin_bin_bingo/article/details/80531582 一.乱码现象 利用sublime自带编译快捷方式ctrl+B会出现中文乱码 ...

  4. HDU 5178 pairs【二分】||【尺取】

    <题目链接> 题目大意: 给定一个整数序列,求出绝对值小于等于k的有序对个数. 解题分析: $O(nlong(n))$的二分很好写,这里就不解释了.本题尺取$O(n)$也能做,并且效率很不 ...

  5. 流网络分析系统-SNAS

    流网络分析系统-SNAS SNAS,Streaming Network Analytics System (project SNAS) ,是一个收集.跟踪.存取 千万条实时路由对象的系统. 官网:ht ...

  6. BZOJ.1805.[IOI2007]sail船帆(贪心 线段树)

    BZOJ 洛谷 首先旗杆的顺序没有影响,答案之和在某一高度帆的总数有关.所以先把旗杆按高度排序. 设高度为\(i\)的帆有\(s_i\)个,那么答案是\(\sum\frac{s_i(s_i-1)}{2 ...

  7. 潭州课堂25班:Ph201805201 django 项目 第三十一课 在线课堂视频点播的实现(课堂笔记)

    在线课堂 一.数据库模型设计 # 在apps/course/models.py中定义如下模型: from django.db import models from utils.models impor ...

  8. 潭州课堂25班:Ph201805201 django 项目 第二十二课 文章主页 新闻列表页面滚动加载,轮播图后台实现 (课堂笔记)

    新建static/js/news/index.js文件 ,主要用于向后台发送请求, // 新建static/js/news/index.js文件 $(function () { // 新闻列表功能 l ...

  9. 浅谈KMP“串”的模式匹配问题

    感悟:预处理next[ ]数组求解B串的"自我匹配过程",思路与KMP类似,目标得到最大相同的前缀.后缀. ([1->k]==[i-k+1,i]),可以根据由前往后,利用前面 ...

  10. Meanshift算法学习

    ref:参考自:这里(目标跟踪) Meanshift图像分割:这里 最近看到FT算法使用meanshift算法进行显著图的分割,于是就来学习他的姿势 对于集合中的每一个元素,对它执行下面的操作:把该元 ...