thinkphp框架的使用

文章目录

it发展到现在,php当然也有各种框架,thinkphp用的就比较多。

步骤

前提:

php、composer都已装好,php.ini已配置好(包括扩展等都已放开),mysql已安装好。

1、创建项目

bash 复制代码
带目录创建:
composer create-project topthink/think 具体的项目名

如果已有目录,进入到目录内,用如下命令创建:
composer create-project topthink/think ./

2、创建文件app/controller/User.php,代码:

php 复制代码
<?php
declare (strict_types = 1);

namespace app\controller;

use app\BaseController;
use think\facade\View; // 引入 View  facade

class User extends BaseController
{
    /**
     * 显示资源列表
     */
    public function index()
    {
        // 1. 模拟一些数据(因为还没连数据库)
        $mockData = [
            ['id' => 1, 'name' => '张三', 'email' => 'zhangsan@example.com', 'create_time' => date('Y-m-d H:i:s')],
            ['id' => 2, 'name' => '李四', 'email' => 'lisi@example.com', 'create_time' => date('Y-m-d H:i:s')],
            ['id' => 3, 'name' => '王五', 'email' => 'wangwu@example.com', 'create_time' => date('Y-m-d H:i:s')],
        ];

        // 2. 将数据赋值给模板变量 'users'
        View::assign('users', $mockData);

        // 3. 渲染 view/user/index.html 模板
        return View::fetch('index');
    }

    /**
     * 显示创建资源表单页.
     */
    public function create()
    {
        return 'Create User Page';
    }
}

3、创建view/user/index.html,代码:

html 复制代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="UTF-8">
    <title>用户列表</title>
    <style>
        body { font-family: Arial, sans-serif; padding: 20px; }
        table { width: 100%; border-collapse: collapse; margin-top: 20px; }
        th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
        th { background-color: #f2f2f2; }
        tr:nth-child(even) { background-color: #f9f9f9; }
    </style>
</head>
<body>
    <h1>用户管理中心</h1>
    
    <!-- 如果 users 变量存在且不为空 -->
    {notempty name="users"}
        <table>
            <thead>
                <tr>
                    <th>ID</th>
                    <th>姓名</th>
                    <th>邮箱</th>
                    <th>创建时间</th>
                </tr>
            </thead>
            <tbody>
                <!-- 循环遍历 users 数组 -->
                {foreach $users as $user}
                <tr>
                    <td>{$user.id}</td>
                    <td>{$user.name}</td>
                    <td>{$user.email}</td>
                    <td>{$user.create_time}</td>
                </tr>
                {/foreach}
            </tbody>
        </table>
    {else /}
        <p>暂无用户数据,请先添加用户。</p>
    {/notempty}

    <br>
    <a href="/user/create">添加新用户</a>
</body>
</html>

4、config/database.php配置数据库

数据库名、账号密码等。

5、启动项目

bash 复制代码
php think run

6、浏览器访问http://localhost:8000/user,出现用户信息表示成功。

.env配置管理(不是虚拟环境)

php中的.env只是配置管理,不是虚拟环境。

.env是比较有用的,例如:

APP_DEBUG = true # 开启debug后,f12可以看到报错信息。

.env和database.config哪个优先级高?

.env优先级高。

.sample.env .env样板
bash 复制代码
APP_DEBUG = true

DB_TYPE = mysql
DB_HOST = 127.0.0.1
DB_NAME = test
DB_USER = username
DB_PASS = password
DB_PORT = 3306
DB_CHARSET = utf8

DEFAULT_LANG = zh-cn
相关推荐
2501_944521592 小时前
Ramda 跨端三方库仓颉适配全流程
开发语言·javascript·flutter·php
漠月瑾-西安3 小时前
PHP曝出两个严重RCE漏洞:CVE-2026-109618、CVE-2026-109619技术分析与修复指南
网络安全·php·漏洞分析·漏洞修复·远程代码执行
大文说跨境9 小时前
亚马逊多店铺的图片素材怎么批量去重:EXIF 与哈希的处理流程
开发语言·php
上海运维Q先生10 小时前
PHP8.3.36升级修复手册----CVE-2026-109618 CVE-2026-109619
运维·php
2401_8858850411 小时前
芬兰语音通知接口怎样对接?语音提醒接入流程
android·前端·python·php·语音识别
Flynt13 小时前
PHP 9.2 分 RCE 的补丁比公告早公开 3 天,我读完 389 个文件的 diff,也把"死在代码之前"跑了出来
安全·php·源码
萌动的小火苗14 小时前
MQTT的QoS0、QoS1、QoS2有什么区别?
开发语言·网络·python·php·信息与通信
silvamux_14 小时前
10款模型写“君幸食”讲解词:统一事实档案与逐款审校
开发语言·php
Smoothcloud润云15 小时前
GPU远程纳管节点频繁离线?心跳、DNS与时钟排障实战
运维·服务器·开发语言·人工智能·php·gpu算力
ESDWAN15 小时前
企业访问海外系统很慢,如何一步步定位问题?
服务器·网络·php