# app **Repository Path**: sixdec-1/app ## Basic Information - **Project Name**: app - **Description**: 这是基于ThinkPHP框架的一个应用,只需要安装或开发sixshop扩展即可进行应用开发 - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-08-26 - **Last Updated**: 2025-12-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # SixShop应用 这是一个纯净版的ThinkPHP项目,基于ThinkPHP8.1开发,添加了DDEV开发环境的配置。 我们的目标是你的项目就是目前这一个项目,只需要安装扩展即可完成开发,不需要修改项目代码,你的业务逻辑应该在某个扩展中完成。 欢迎PHP开发者加入我们,一起开发SixShop扩展。 ## 安装依赖 ```bash ddev composer install ``` ## 运行应用 ```bash 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" ``` ## 扩展列表 ## SixShop扩展开发指南 扩展模块开发流程: 1. 先创建git项目 2. 项目clone到本地`runtime/extension`目录下,也可以其他没有版本控制的目录下 ```shell cd backend/runtime/extension git clone git@github.com:runphp/sixshop-hello.git ``` 3. 在`composer.json`中添加path仓库(下面以hello为例) ```json { "repositories": [ { "type": "path", "url": "runtime/extension/sixshop-hello", "options": { "symlink": true, "versions": { "six-shop/hello": "v0.2.9" } } } ] } ``` 4. 安装你的扩展模块 ```shell ddev composer require "six-shop/hello:^v0.2.0" ``` 上面的版本是假如最新版本的`six-shop/hello`是`v0.2.0`,那么我们的开发版本比它大的版本就好了,我们可以设置成`v0.2.9` 成功处理的话可以看到 ```shell Package operations: 1 install, 0 updates, 0 removals - Installing six-shop/hello (v0.2.9): Symlinking from runtime/extension/sixshop-hello ``` 现在你就可以在`runtime/extension`或`vendor`目录下修改代码了 5. 私有扩展模块认证说明 在 `~/.composer/auth.json` 中添加认证信息 ```json { "bearer": { "packagist.jd29.com": "5f280c17d5****************************3f506ca01acef704" } } ``` 说明: ddev环境对应的auth.json文件为`~/.ddev/homeadditions/.composer/auth.json` 当然你可以做软连接过去 ```shell 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"`,然后就是 ```json { "extra": { "sixshop": { "id": "hello", "class": "SixShop\\Hello\\Extension" } } } ``` id为扩展模块的标识符,需要唯一,class为扩展模块的类名,实现了`SixShop\Extension\ExtensionInterface`接口 7. 扩展模块的sql安装脚本使用cakephp的migration,在模块的`database/migrations`目录添加 8. 扩展路由在`route`目录下添加路由文件 默认会加载`admin.php`和`api.php`两个文件, 对应的是admin和api应用,你也可以实现`SixShop\Extension\ExtensionInterface`的`getRoutes`接口 9. 扩展模块的事件监听,可以说使用`SixShop\Core\Attribute\Hook`实现,具体请查看`SixShop\Core\Attribute\Hook`类,在模块的`src/Hooks`目录下添加,然后实现`SixShop\Extension\ExtensionInterface`的`getHooks`接口 10. 扩展模块的异步任务实现你可以继承`SixShop\Core\Job\BaseJob`即可,具体请查看`SixShop\Core\Job\BaseJob`类 使用示例 ```php \app\api\job\IndexJob::dispatch(); // 异步任务 \app\api\job\IndexJob::dispatch()->delay(10); // 延迟10s执行 ``` 11. 扩展定时任务,使用`SixShop\Core\Attribute\Cron`注解, 并且需要实现`SixShop\Extension\ExtensionInterface`的`getCronJobs`接口 参考`\SixShop\System\Cron\SystemCron`类 12. 扩展命令行 注册命令行请实现`SixShop\Extension\ExtensionInterface`的`getCommands`接口 ,默认自动加载扩展目录下`command.php`文件 可以参考`backend/vendor/six-shop/system/command.php` 13. 扩展的配置,默认自动加载扩展目录下`config.php`文件,可以参考`backend/vendor/six-shop/hello/config.php` 统一配置的实现目前需要安装`six-shop/system`,后续会单独的扩展包,目前配置的实现是使用 [form-create](https://form-create.com/v3/designer/) 生成配置表单即可,支持子表单组件