刚拆完第三个插件才发现:我的目录结构一直在"假装专业"

插件开发 31 浏览 0 回复 返回上级

上周帮朋友 review 一个练手插件,打开 zip 差点没笑出声——全部代码塞在一个 800 行的主文件里,assets 和语言包跟 PHP 混成一锅粥。但笑完就沉默了,因为两年前的我也是这样,还觉得自己"结构挺清晰"。

现在我的目录长这样,不一定最优,但确实救过我的命:

my-plugin/
├── my-plugin.php          // 唯一入口,只做"接线员"
├── bootstrap.php          // 实际初始化,解耦出来方便单元测试
├── src/
│   ├── Admin/             // 后台相关:菜单、设置页、Metabox
│   ├── Frontend/          // 前台:短码、小工具、public 钩子
│   ├── Core/              // 跨层工具:自动加载、容器、常量
│   └── Database/          // 迁移、查询封装、版本控制
├── assets/
│   ├── css/src/           // SCSS 源文件,不是直接 enqueue 的
│   ├── js/src/            // Webpack 入口,分 admin/frontend
│   └── images/
├── languages/             // .pot 由 wp-cli 生成,别手写
├── tests/                 // 不是 test/,WordPress 核心用了复数
└── vendor/                // Composer,但 production 要 --no-dev

重点说入口文件。很多人把 `register_activation_hook` 直接写在主文件头部,激活时爽了,但后面想测激活逻辑就得整包加载。我现在把钩子注册也甩给 `bootstrap.php`,主文件只剩 20 行:

```php
评论0
回复 · 0
还没有回复
微信客服 微信客服