快速入门

在本地部署thinkphp

thinkphp5.0下载

1.把tp5.rar放在你的电脑php环境下的web目录里,然后解压出来,这里重命名为thinkphp

2.给这个项目创建一个虚拟主机,打开phpstudy_pro软件并启动web服务,在侧边菜单栏选择网站,点击创建网站

如图一配置,还有在创建环境里选择创建数据库,如图二配置,最后一路确认,等待web服务重启完成

3.打开浏览器,输入刚才配置的域名,看到这个界面说明已经部署成功

4.创建Admin,Home模块和User公共模型

打开cmd,输入如下命令

//创建Admin模块
php think build --module Admin

//创建Home模块
php think build --module Home
//创建模型
php think make:model common/User/User

5.访问home模块里的index控制器里面index方法

首先打开thinkphp/application/Home/controller/Index.php,如下:

<?php
namespace app\Home\controller;

class Index
{
    public function index()
    {
        return '这是Home模块里的index控制器';
    }
}

注意:如果public里的.htaccess伪静态文件为空,必须要加上;入口文件index.php

//域名/入口文件/模块/方法
http://www.thinkphp.com/index.php/home/index

隐藏入口文件,给public.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>
//域名/模块/方法
http://www.thinkphp.com/home/index

6.创建验证器

在application/Admin目录下创建一个叫validate文件夹

在validate目录下创建User文件夹,再User文件夹新建User.php文件

User.php里的代码如下:

<?php

namespace app\Admin\validate\User;

use think\Validate;

class user extends Validate
{
    /**
     * 验证规则
     */
    protected $rule = [
        'phone'   => 'require|unique:user|max:11|/^1[0-9]{10}/',
        'password' => 'require',
        'salt'   => 'require',
        'gender' => 'number|in:0,1,2'
    ];
    /**
     * 提示消息
     */
    protected $message = [
        'phone.require' => '手机号码必填',
        'phone.unique'  => '手机号码必须是唯一的,该手机号码已存在',
        'password.require'  => '密码必填',
        'salt.require'      => '密码盐必填',
    ];

    /**
     * 验证场景
     */
    protected $scene = [
        //添加
        'add'  => ['phone', 'salt', 'password'],

        //h5手机端修改基本资料
        'profile' => ['phone', 'nickname', 'gender']

    ];
}

在application/Admin/controller/Index.php引用验证器

<?php
namespace app\Admin\controller;

//使用User验证器
use app\Admin\validate\User\User;

class Index
{
    public function index()
    {
        //实例化User验证器
        $UserValidate = new User;

        return '这是后台';
    }
}

7.模板布局

在application\config.php里找到template,加上下面的代码

// 模板布局
        'layout_on'     =>  true,
        'layout_name'   =>  'layout',

完整

'template'               => [
        // 模板引擎类型 支持 php think 支持扩展
        'type'         => 'Think',
        // 默认模板渲染规则 1 解析为小写+下划线 2 全部转换小写
        'auto_rule'    => 1,
        // 模板路径
        'view_path'    => '',
        // 模板后缀
        'view_suffix'  => 'html',
        // 模板文件名分隔符
        'view_depr'    => DS,
        // 模板引擎普通标签开始标记
        'tpl_begin'    => '{',
        // 模板引擎普通标签结束标记
        'tpl_end'      => '}',
        // 标签库标签开始标记
        'taglib_begin' => '{',
        // 标签库标签结束标记
        'taglib_end'   => '}',
        // 模板布局
        'layout_on'     =>  true,
        'layout_name'   =>  'layout',
    ],

然后在application/Admin/view目录下创建layout.html文件,再创建Common作为公共部分,index.html进行头尾分离,目录如下

layout.html

{include file="Common/meta" /}
{include file="Common/header" /}
{include file="Common/menu" /}
{__CONTENT__}
{include file="Common/js" /}

8.连接数据库

在application\database.php文件配置

return [
    // 数据库类型
    'type'            => 'mysql',
    // 服务器地址
    'hostname'        => '127.0.0.1',
    // 数据库名
    'database'        => 'thinkphp',
    // 用户名
    'username'        => 'thinkphp',
    // 密码
    'password'        => '123456',
    // 端口
    'hostport'        => '',
    // 连接dsn
    'dsn'             => '',
    // 数据库连接参数
    'params'          => [],
    // 数据库编码默认采用utf8
    'charset'         => 'utf8',
    // 数据库表前缀
    'prefix'          => 'pre_',
    // 数据库调试模式
    'debug'           => true,
    // 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
    'deploy'          => 0,
    // 数据库读写是否分离 主从式有效
    'rw_separate'     => false,
    // 读写分离后 主服务器数量
    'master_num'      => 1,
    // 指定从服务器序号
    'slave_no'        => '',
    // 自动读取主库数据
    'read_master'     => false,
    // 是否严格检查字段是否存在
    'fields_strict'   => true,
    // 数据集返回类型
    'resultset_type'  => 'array',
    // 自动写入时间戳字段
    'auto_timestamp'  => false,
    // 时间字段取出后的默认时间格式
    'datetime_format' => 'Y-m-d H:i:s',
    // 是否需要进行SQL性能分析
    'sql_explain'     => false,
];

完整源代码

thinkphp源代码

powered by GitbookEdit Time: 2023-04-08 10:28:32