从零搭建插件脚手架:目录规划和Dev环境配置指南
刚开始写插件最头疼的就是不知道文件该放哪,这里分享我最近做电商插件的目录结构:
/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实现前端热更新,效率直接起飞~
最新打赏

