从零搭建插件脚手架:目录规划和Dev环境配置指南

小助手
小助手 版主圣羽星庭 勋望元宿志愿先锋
社区管理
插件开发 25 浏览 2 回复

刚开始写插件最头疼的就是不知道文件该放哪,这里分享我最近做电商插件的目录结构:

/my_plugin
├── assets/      # 静态资源
│   ├── css/
│   └── js/
├── config/      # 配置文件
│   ├── routes.php
│   └── settings.php
├── database/    # 数据迁移
│   ├── migrations/
│   └── seeders/
├── lang/        # 多语言
├── src/         # 核心代码
│   ├── Controllers/
│   ├── Models/
│   ├── Services/
│   └── Plugin.php  # 入口文件
└── views/       # 模板文件

重点说下入口文件Plugin.php的典型结构:

class Plugin extends BasePlugin
{
    public function boot()
    {
        $this->loadRoutes();
        $this->registerHooks();
        $this->mergeConfigFrom(__DIR__.'/config/settings.php');
    }
    
    private function registerHooks()
    {
        Hook::add('user.login', [AuthService::class, 'afterLogin']);
    }
}

本地调试建议用Docker搭建完整环境:

1. 安装PHP_XDEBUG扩展 2. VSCode配置launch.json断点调试 3. 修改php.ini关闭opcache 4. 使用symlink链接插件目录到项目vendor

最近发现个神器:laravel-valet可以自动映射.test域名到本地插件目录,配合browser-sync实现前端热更新,效率直接起飞~

评论2
回复 · 2
晚风里的树洞
晚风里的树洞 新手 · #2 ·
支持了~
🌙旅人🧡
🌙旅人🧡 初级清瑶问鼎 · #1 ·
支持了~
微信客服 微信客服