six-shop / app
the new thinkphp framework
Installs: 0
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
Type:project
Requires
- php: >=8.0.0
- topthink/framework: ^8.0
- topthink/think-filesystem: ^2.0|^3.0
- topthink/think-orm: ^3.0|^4.0
Requires (Dev)
- topthink/think-dumper: ^1.0
- topthink/think-trace: ^2.0
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
SixShop扩展开发指南
扩展模块开发流程:
-
先创建git项目
-
项目clone到本地
runtime/extension
目录下,也可以其他没有版本控制的目录下cd backend/runtime/extension git clone git@github.com:runphp/sixshop-hello.git
-
在
composer.json
中添加path仓库(下面以hello为例){ "repositories": [ { "type": "path", "url": "runtime/extension/sixshop-hello", "options": { "symlink": true, "versions": { "six-shop/hello": "v0.2.9" } } } ] }
-
安装你的扩展模块
ddev composer require "six-shop/hello:^v0.2.0"
上面的版本是假如最新版本的
six-shop/hello
是v0.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/extension
或vendor
目录下修改代码了 -
私有扩展模块认证说明
在
~/.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官方文档。 -
扩展模块的composer.json 参考其他扩展,不同地方是添加了
"type": "sixshop-extension"
,然后就是{ "extra": { "sixshop": { "id": "hello", "class": "SixShop\\Hello\\Extension" } } }
id为扩展模块的标识符,需要唯一,class为扩展模块的类名,实现了
SixShop\Extension\ExtensionInterface
接口 -
扩展模块的sql安装脚本使用cakephp的migration,在模块的
database/migrations
目录添加 -
扩展路由在
route
目录下添加路由文件 默认会加载admin.php
和api.php
两个文件, 对应的是admin和api应用,你也可以实现SixShop\Extension\ExtensionInterface
的getRoutes
接口 -
扩展模块的事件监听,可以说使用
SixShop\Core\Attribute\Hook
实现,具体请查看SixShop\Core\Attribute\Hook
类,在模块的src/Hooks
目录下添加,然后实现SixShop\Extension\ExtensionInterface
的getHooks
接口 -
扩展模块的异步任务实现你可以继承
SixShop\Core\Job\BaseJob
即可,具体请查看SixShop\Core\Job\BaseJob
类 使用示例
\app\api\job\IndexJob::dispatch(); // 异步任务 \app\api\job\IndexJob::dispatch()->delay(10); // 延迟10s执行
-
扩展定时任务,使用
SixShop\Core\Attribute\Cron
注解, 并且需要实现SixShop\Extension\ExtensionInterface
的getCronJobs
接口 参考\SixShop\System\Cron\SystemCron
类 -
扩展命令行 注册命令行请实现
SixShop\Extension\ExtensionInterface
的getCommands
接口 ,默认自动加载扩展目录下command.php
文件 可以参考backend/vendor/six-shop/system/command.php
-
扩展的配置,默认自动加载扩展目录下
config.php
文件,可以参考backend/vendor/six-shop/hello/config.php
统一配置的实现目前需要安装six-shop/system
,后续会单独的扩展包,目前配置的实现是使用 form-create 生成配置表单即可,支持子表单组件