# 插件机制
# 原理说明
BeikeShop
插件充分利用 Laravel
框架 ServiceProvider 发现以及引导机制, 将系统各个插件注册到系统。
包括插件的 Migrations, Routes, Views, Lang, 以及启动文件 Bootstrap.php。
插件PHP代码需要遵循 PSR4自动加载规范。
简单来说,目录名和类名需要采用首字母大写驼峰也就是Studly
原则, 如图所示
# 目录说明
一个典型的插件目录如下
Controllers
Lang
Middleware
Migrations
Models
Repositories
Routes
Static
Views
Bootstrap.php
columns.php
config.json
目录名称 | 说明 |
---|---|
Controllers | 控制器目录,前台和后台控制器都放到此目录,可以有子目录,只要符合 PSR4 规范即可 |
Lang | 语言包目录,子目录的名字需要和 /resources/lang 目录下保持一致 |
Middleware | 中间件目录,子目录 /Shop 存放前台中间件, 子目录 /Admin 存放后台中间件, 系统会自动加载 |
Migrations | 数据库迁移目录,可参考 https://laravel.com/docs/9.x/migrations |
Models | 模型目录,插件模型,定义模型数据表以及表间关系 |
Repositories | 数据仓库目录,DB存取相关类 |
Routes | 路由目录,插件自定义路由。admin.php 存放管理后台路由, shop.php 存放前台路由 |
Static | 存放静态文件,比如图片,可以放到 image 目录,可以在对应插件模板文件用 helper plugin_resize(插件编码, '/image/xx.png') 引用 |
Views | 插件模板目录,包括前后台 blade.php 模板文件 |
Bootstrap.php | 插件启动类需要实现一个 boot 公共方法: public function boot() , 再在该方法中添加 hook |
columns.php | 插件配置,此文件存放插件需要的配置字段,后台插件编辑页会自动显示。如果需要自定义配置页面,请在插件下添加 /Views/admin/config.blade.php 模板文件 |
config.json | 插件基本信息,包括编码,名称,描述,类型,图标,作者等信息 |
← BeikeShop 目录结构 订阅插件 →