基本介绍

简介

ThinkPHP是一个快速、简单的基于MVC和面向对象的轻量级PHP开发框架,遵循Apache2开源协议发布,
自2006年诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简代码的同时,尤其注重开发体验和易用性,
并且拥有众多的原创功能和特性,为WEB应用和API开发提供了强有力的支持。

安装

  • Composer安装
  • Git安装
  • 源码安装

Composer安装

curl -sS https://getcomposer.org/installer | php

mv composer.phar /usr/local/bin/composer

然后在命令行下面,切换到你的web根目录下面并执行下面的命令:
composer create-project topthink/think=5.0.*  tp5  --prefer-dist

Git安装

首先克隆下载应用项目仓库
git clone https://github.com/top-think/think tp5

然后切换到tp5目录下面,再克隆核心框架仓库:
git clone https://github.com/top-think/framework thinkphp

两个仓库克隆完成后,就完成了ThinkPHP5.0的Git方式下载,如果需要更新核心框架的时候,只需要切换到thinkphp核心目录下面,然后执行:
git pull https://github.com/top-think/framework

源码安装(离线安装)

thinkphp5.0下载

直接下载rar压缩包放到php环境目录下

目录结构

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                 命令行入口文件

入口文件

ThinkPHP5.0版本的默认自带的入口文件位于public/index.php
实际部署的时候public目录为你的应用对外访问目录

浏览器访问路径为:http://localhost/tp5/public/

静态资源访问

网站的资源文件访问不会影响正常的操作访问,只有当访问的资源文件不存在的时候才会解析到入口文件,一般就会提示模块不存在的错误。

网站的资源文件一般放入public目录的子目录下面,例如下面是一个建议规范:

public
├─index.php     应用入口文件
├─static        静态资源目录   
│  ├─css          样式目录
│  ├─js         脚本目录
│  └─img          图像目录

记住,千万不要在public目录之外的任何位置放置资源文件,包括application目录。

访问资源文件的URL路径是:

http://tp5.com/static/css/style.css
http://tp5.com/static/js/common.js
http://tp5.com/static/img/picture.jpg

如果你没有设置域名绑定,而是使用子目录方式访问的话,那么可能的资源访问地址是:

http://localhost/public/static/css/style.css
http://localhost/public/static/js/common.js
http://localhost/public/static/img/picture.jpg

静态常量

在模板中可以使用__STATIC__ 来输出项目目录但是在路径中缺少public目录,可以在配置文件中自定义静态常量

// 视图输出字符串内容替换
'view_replace_str'       => [
    '__STATIC__' => '/static',
    '__CSS__'    => '/static/css',
    '__JS__'     => '/static/js',
    '__IMG__'    => '/static/images',
]

加载资源格式:
<linkhref="__CSS__/style.css"rel="stylesheet">
<script src="__JS__/style.js"></script>
<img src="__IMG__/user_logo.jpg" />

调试模式

ThinkPHP支持调试模式,默认情况下是开启状态(5.0.10+版本开始,默认关闭调试模式,需要自己开启)。调试模式以除错方便优先,而且在异常的时候可以显示尽可能多的信息,所以对性能有一定的影响。

修改应用配置文件(application/config.php)中的app_debug配置参数:

// 关闭调试模式
'app_debug' =>  false,

为了安全考虑,避免泄露你的服务器WEB目录信息等资料,一定记得正式部署的时候关闭调试模式

URL访问

默认情况下,URL是不区分大小写的,也就是说 URL里面的模块/控制器/操作名会自动转换为小写,控制器在最后调用的时候会转换为驼峰法处理。

http://localhost/index.php/Index/Blog/read
// 和下面的访问是等效的
http://localhost/index.php/index/blog/read

如果访问下面的地址

http://localhost/index.php/Index/BlogTest/read
// 和下面的访问是等效的
http://localhost/index.php/index/blogtest/read

在这种URL不区分大小写情况下,如果要访问驼峰法的控制器类,则需要使用:

http://localhost/index.php/Index/blog_test/read

如果希望URL访问严格区分大小写,可以在应用配置文件中设置:

// 关闭URL中控制器和操作名的自动转换
'url_convert'    =>  false,

隐藏入口文件

在ThinkPHP5.0中,出于优化的URL访问原则,还支持通过URL重写隐藏入口文件,下面以Apache为例说明隐藏应用入口文件index.php的设置。

下面是Apache的配置过程,可以参考下:

  • httpd.conf配置文件中加载了mod_rewrite.so模块
  • AllowOverride None 将None改为 All
  • 在应用入口文件同级目录添加.htaccess文件,内容如下:
<IfModule mod_rewrite.c>
    Options +FollowSymlinks -Multiviews
    RewriteEngine on

    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
</IfModule>

配置信息

文件路径:tp5/application/config

//项目配置文件
return [
    // 默认模块名
    'default_module'        => 'index',
    // 默认控制器名
    'default_controller'    => 'Index',
    // 默认操作名
    'default_action'        => 'index',
    //更多配置参数
    //...
];

读取配置

//先引入config 配置类
use think\Config;

//读取config 配置
Config::get('配置名称');

//或者你需要判断是否存在某个设置参数
Config::has('配置参数2');

//设置配置参数
Config::set('配置参数','配置值');
// 或者使用助手函数
config('配置参数','配置值');

//也可以批量设置,例如:
Config::set([
    '配置参数1'=>'配置值',
    '配置参数2'=>'配置值'
]);
// 或者使用助手函数
config([
    '配置参数1'=>'配置值',
    '配置参数2'=>'配置值'
]);

数据库配置

文件路径:tp5/application/database.php

/* 数据库设置 */
'database'              => [
    // 数据库类型
    'type'        => 'mysql',
    // 服务器地址
    'hostname'    => '127.0.0.1',
    // 数据库名
    'database'    => 'thinkphp',
    // 数据库用户名
    'username'    => 'root',
    // 数据库密码
    'password'    => '',
    // 数据库连接端口
    'hostport'    => '',
    // 数据库连接参数
    'params'      => [],
    // 数据库编码默认采用utf8
    'charset'     => 'utf8',
    // 数据库表前缀
    'prefix'      => '',
    // 数据库调试模式
    'debug'       => false,
],
powered by GitbookEdit Time: 2023-04-08 10:28:32