逍遥图库系统逍遥图库系统
首页
  • 快速开始

    • 项目介绍
    • 安装指南
    • 快速开始
  • 深入了解

    • 配置说明
    • 部署指南
    • 安全配置
  • 用户系统
  • 图片管理
  • 相册管理
  • 互动功能
  • 管理后台
  • PWA 渐进式应用
  • API 概述
  • 认证接口
  • 图片接口
  • 相册接口
  • 用户接口
  • 管理接口
  • 主题系统
  • 性能优化
  • 常见问题
  • 更新日志
Gitee
首页
  • 快速开始

    • 项目介绍
    • 安装指南
    • 快速开始
  • 深入了解

    • 配置说明
    • 部署指南
    • 安全配置
  • 用户系统
  • 图片管理
  • 相册管理
  • 互动功能
  • 管理后台
  • PWA 渐进式应用
  • API 概述
  • 认证接口
  • 图片接口
  • 相册接口
  • 用户接口
  • 管理接口
  • 主题系统
  • 性能优化
  • 常见问题
  • 更新日志
Gitee
  • 高级主题

    • 主题系统
    • 性能优化
    • 自定义开发
    • 常见问题

自定义开发

本指南介绍如何对逍遥图库进行自定义开发和扩展。

目录结构

photo-gallery/
├── app/                    # 应用目录
│   ├── controller/        # 控制器
│   ├── model/             # 模型
│   ├── service/           # 服务层
│   ├── validate/          # 验证器
│   └── middleware/        # 中间件
├── config/                # 配置文件
├── route/                 # 路由定义
└── view/                  # 视图模板

添加新功能

1. 创建控制器

// app/controller/CustomController.php
namespace app\controller;

class CustomController extends BaseController
{
    public function index()
    {
        return json(['message' => 'Hello']);
    }
}

2. 添加路由

// route/app.php
Route::get('/custom', 'CustomController/index');

3. 创建服务层

// app/service/CustomService.php
namespace app\service;

class CustomService
{
    public function process($data)
    {
        // 业务逻辑
    }
}

扩展存储驱动

添加新的云存储

// app/service/storage/QiniuStorage.php
namespace app\service\storage;

class QiniuStorage implements StorageInterface
{
    public function upload($file, $path)
    {
        // 七牛云上传逻辑
    }

    public function delete($path)
    {
        // 删除逻辑
    }
}

自定义中间件

// app/middleware/Custom.php
namespace app\middleware;

class Custom
{
    public function handle($request, \Closure $next)
    {
        // 前置处理

        $response = $next($request);

        // 后置处理

        return $response;
    }
}

事件监听

定义事件

// app/event/PhotoUploaded.php
namespace app\event;

class PhotoUploaded
{
    public $photo;

    public function __construct($photo)
    {
        $this->photo = $photo;
    }
}

监听事件

// app/listener/SendNotification.php
namespace app\listener;

class SendNotification
{
    public function handle($event)
    {
        // 发送通知
    }
}

代码规范

  • 遵循 PSR-12 编码规范
  • 使用有意义的变量和方法名
  • 添加必要的注释
  • 编写单元测试

调试技巧

开启调试模式

APP_DEBUG = true

使用 dump

dump($variable);
halt($variable); // 输出并停止

查看 SQL

Db::listen(function($sql, $runtime, $master) {
    echo $sql . ' [' . $runtime . 's]';
});

提交代码

  1. Fork 仓库
  2. 创建特性分支
  3. 编写代码和测试
  4. 提交 Pull Request
在 Gitee 上编辑此页
Prev
性能优化
Next
常见问题