the new thinkphp framework

dev-main 2025-09-30 05:24 UTC

This package is auto-updated.

Last update: 2025-09-30 05:57:19 UTC


README

这是一个纯净版的ThinkPHP项目,基于ThinkPHP8.1开发,添加了DDEV开发环境的配置。

我们的目标是你的项目就是目前这一个项目,只需要安装扩展即可完成开发,不需要修改项目代码,你的业务逻辑应该在某个扩展中完成。

欢迎PHP开发者加入我们,一起开发SixShop扩展。

安装依赖

ddev composer install

运行应用

ddev start
ddev launch # 或者访问 https://app.ddev.site/

SixShop扩展特性

SixShop扩展旨在为ThinkPHP开发者们开发出更易维护的项目

每个项目都是不同的扩展组合而成,对ThinkPHP应用的扩展只需要通过composer require 进行安装(包括数据的迁移脚本)

最终你只需要寻找现成合适的扩展进行安装,然后自己自行开发部分扩展

支持私有仓库进行扩展模块开发,保护用户定制开发的代码

支持应用市场扩展开发模式

项目依赖

"php": ">=8.3",
"topthink/framework": "^8.1",
"topthink/think-orm": "^4.0"

扩展列表

https://packagist.org/?type=sixshop-extension

https://packagist.jd29.com

SixShop扩展开发指南

扩展模块开发流程:

  1. 先创建git项目

  2. 项目clone到本地runtime/extension目录下,也可以其他没有版本控制的目录下

    cd backend/runtime/extension
    git clone git@github.com:runphp/sixshop-hello.git
  3. composer.json中添加path仓库(下面以hello为例)

    {
        "repositories": [
            {
                "type": "path",
                "url": "runtime/extension/sixshop-hello",
                "options": {
                    "symlink": true,
                    "versions": {
                        "six-shop/hello": "v0.2.9"
                    }
                }
            }
        ]
    }
  4. 安装你的扩展模块

    ddev composer require  "six-shop/hello:^v0.2.0"

    上面的版本是假如最新版本的six-shop/hellov0.2.0,那么我们的开发版本比它大的版本就好了,我们可以设置成v0.2.9

    成功处理的话可以看到

    Package operations: 1 install, 0 updates, 0 removals
      - Installing six-shop/hello (v0.2.9): Symlinking from runtime/extension/sixshop-hello

    现在你就可以在runtime/extensionvendor目录下修改代码了

  5. 私有扩展模块认证说明

    ~/.composer/auth.json 中添加认证信息

    {
       "custom-headers": {
         "packagist.jd29.com": {
             "X-API-KEY": "5f280c17d5958****************************************0893f506ca01acef704"
         }
      }
    }

    说明: ddev环境对应的auth.json文件为~/.ddev/homeadditions/.composer/auth.json

    当然你可以做软连接过去

    mkdir -p ~/.ddev/homeadditions/.composer && ln -s ~/.composer/auth.json ~/.ddev/homeadditions/.composer/auth.json

    然后需要ddev start重启下容器,可以通过ddev composer config -l查看是否生效 最后你可以参考doc/auth.json这份示例文件,进行修改,这些设置也可以直接在composer.json文件设置,最终使用方式请参考composer官方文档。

  6. 扩展模块的composer.json 参考其他扩展,不同地方是添加了"type": "sixshop-extension",然后就是

    {
      "extra": {
        "sixshop": {
          "id": "hello",
          "class": "SixShop\\Hello\\Extension"
        }
      }
    }

    id为扩展模块的标识符,需要唯一,class为扩展模块的类名,实现了SixShop\Extension\ExtensionInterface接口

  7. 扩展模块的sql安装脚本使用cakephp的migration,在模块的database/migrations目录添加

  8. 扩展路由在route目录下添加路由文件 默认会加载admin.phpapi.php两个文件, 对应的是admin和api应用,你也可以实现SixShop\Extension\ExtensionInterfacegetRoutes接口

  9. 扩展模块的事件监听,可以说使用SixShop\Core\Attribute\Hook实现,具体请查看SixShop\Core\Attribute\Hook类,在模块的src/Hooks目录下添加,然后实现SixShop\Extension\ExtensionInterfacegetHooks接口

  10. 扩展模块的异步任务实现你可以继承SixShop\Core\Job\BaseJob即可,具体请查看SixShop\Core\Job\BaseJob类 使用示例

\app\api\job\IndexJob::dispatch(); // 异步任务
\app\api\job\IndexJob::dispatch()->delay(10); // 延迟10s执行
  1. 扩展定时任务,使用SixShop\Core\Attribute\Cron注解, 并且需要实现SixShop\Extension\ExtensionInterfacegetCronJobs接口 参考\SixShop\System\Cron\SystemCron

  2. 扩展命令行 注册命令行请实现SixShop\Extension\ExtensionInterfacegetCommands接口 ,默认自动加载扩展目录下command.php文件 可以参考backend/vendor/six-shop/system/command.php

  3. 扩展的配置,默认自动加载扩展目录下config.php文件,可以参考backend/vendor/six-shop/hello/config.php 统一配置的实现目前需要安装six-shop/system,后续会单独的扩展包,目前配置的实现是使用 form-create 生成配置表单即可,支持子表单组件