PHP教程006:ThinkPHP项目入门

文章目录

  • 4、ThinkPHP项目入门
    • [4.1 创建项目](#4.1 创建项目)
      • [4.1.1 使用composer创建项目](#4.1.1 使用composer创建项目)
      • [4.1.2 启动项目(验证是否成功)](#4.1.2 启动项目(验证是否成功))
    • [4.2 创建第一个控制器](#4.2 创建第一个控制器)
      • [4.2.1 快速生成控制器](#4.2.1 快速生成控制器)
      • [4.2.2 编写代码](#4.2.2 编写代码)
    • [4.3 定义路由](#4.3 定义路由)

4、ThinkPHP项目入门

4.1 创建项目

4.1.1 使用composer创建项目

打开你的终端(CMD、PowerShell 或 Git Bash),进入你想存放代码的文件夹(例如 D:\Code),输入以下命令:

bash 复制代码
composer create-project topthink/think teamflow
  • topthink/think:这是 ThinkPHP 的官方骨架包。
  • teamflow:这是你的项目名称,Composer 会自动创建一个同名文件夹。

安装过程可能出现最经典的 Composer 仓库优先级冲突 问题:

解决方案:

  1. 强制统一镜像源(最推荐):直接把项目配置为只使用阿里云镜像,排除干扰。在项目根目录下运行:

    bash 复制代码
    composer config repo.packagist composer https://mirrors.aliyun.com/composer/
  2. 清理并重新安装

    bash 复制代码
    composer clear-cache
    composer update
  3. 如果还不行,可以修改项目目录下的composer.json,删掉下面:

    json 复制代码
    // ❌ 删除这个
    "repositories": [{
        "name": "packagist",
        "type": "composer",
        "url": "https://mirrors.aliyun.com/composer/"
    }]

4.1.2 启动项目(验证是否成功)

进入项目目录并启动 TP 内置的服务器:

bash 复制代码
cd teamflow
php think run

打开浏览器访问该地址:http://127.0.0.1:8000/

4.2 创建第一个控制器

4.2.1 快速生成控制器

在项目根目录打开终端,输入以下命令:

bash 复制代码
php think make:controller Hello

提示 :这个命令会自动在 app/controller 目录下创建一个 Hello.php 文件。手动创建也可以,但命令生成会自动帮你写好 namespace(命名空间)。

4.2.2 编写代码

打开 app/controller/Hello.php,修改为以下代码:

php 复制代码
<?php
namespace app\controller;

use app\BaseController;

class Hello extends BaseController
{
    public function index()
    {
        return json([
            'code' => 200,
            'msg'  => 'Hello ThinkPHP 8!',
            'data' => [
                'time' => date('Y-m-d H:i:s'),
                'tips' => '你的第一个 API 接口已就绪'
            ]
        ]);
    }
}

4.3 定义路由

打开 route/app.php,添加一行:

php 复制代码
use think\facade\Route;

// 当访问 http://127.0.0.1:8000/hello 时,执行 Hello 控制器的 index 方法
Route::get('hello', 'Hello/index');

打开浏览器访问:http://127.0.0.1:8000/hello

相关推荐
泡海椒6 分钟前
JQuick-Excel 实战:用 STYLE 配置单元格与区域样式
开发语言·python·excel
Sarvartha8 小时前
final 关键字
java·开发语言
程序员Sunday9 小时前
JavaScript 事件循环面试题,宏任务与微任务怎么执行|Sunday面试指南
开发语言·javascript·面试·校招·事件循环·程序员sunday
zhangzeyuaaa10 小时前
Ruby 多线程、GVL(GIL)与 Mutex 完全指南
开发语言·前端·ruby
谢亮_vipxieliang11 小时前
用 PHP 构建轻量级 REST API:从路由到鉴权的完整实践
开发语言·后端·php
思无邪6611 小时前
用 AI 做 JS 逆向:从抓包到复现的完整方法论
开发语言·javascript·人工智能
H.莓飛12 小时前
【数据结构】二叉树_OJ题
linux·开发语言·数据结构·算法
零基础12313 小时前
Ubuntu 常用命令汇总
linux·运维·开发语言
外收内放13 小时前
Python基础语法练习题(57-58)
开发语言·python
时间的拾荒人13 小时前
Qt 界面美化实战:QSS 样式表
开发语言·qt·面试