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

相关推荐
青峰讲运维24 分钟前
OpenStack Heat 编排:用模板一键交付云业务,告别手动点页面
开发语言·php·openstack
协作者38 分钟前
PHP根本影响不到Domino
php·oidc·domino·notes·inotes·verse
MyFreeIT1 小时前
Python Windows Manual
开发语言·python
kiracrimson1 小时前
STL:List的使用和模拟实现
开发语言·c++·list
神仙别闹1 小时前
基于Python+MySQL实现(Web)个人博客系统
python·mysql·php
北冥you鱼2 小时前
Go 语言 GORM 使用 Preload:从关联查询到嵌套预加载的完整实践
开发语言·jvm·golang
dingzd952 小时前
TikTok账号登录态失效的Cookie字段排查路径
开发语言·php·跨境电商·营销策略
曹牧2 小时前
C#:The operation has timed out
开发语言·c#
你看我名字2 小时前
数眼智能 Search + Reader 实战:联网问答怎样避免“搜到了,却引用错了”
android·java·开发语言
小嘉丶学长2 小时前
Day13 · 列表与元组
linux·运维·服务器·开发语言·python