plugins-world / market-manager
MarketManager plugin made by fresns
v3.2.2
2024-07-31 06:01 UTC
Requires
- php: >= 8.0
- fresns/cmd-word-manager: ^1.0 | dev-master
- fresns/market-manager: ^4.0 | 4.x-dev
- fresns/plugin-manager: ^3.0 | 3.x-dev
- plugins-world/laravel-config: ^2.0
- plugins-world/php-support: dev-master
Requires (Dev)
- orangehill/iseed: ^3.0
This package is auto-updated.
Last update: 2024-10-31 00:18:06 UTC
README
安装
你可以通过 composer 安装这个扩展包,与应用插件不同的是,此扩展会安装到 vendor/
目录下。
⚠️注意,安装的时候,会询问是以下内容,请输入: y
wikimedia/composer-merge-plugin contains a Composer plugin which is currently not in your allow-plugins config. See https://getcomposer.org/allow-plugins
Do you trust "wikimedia/composer-merge-plugin" to execute code and wish to enable it now? (writes "allow-plugins" to composer.json) [y,n,d,?]
下面是初始化项目并引入插件管理器的操作步骤:
- 创建项目
# 创建新项目 laravel-test composer create-project --prefer-dist laravel/laravel laravel-test # 进入项目目录 cd laravel-test # 初始化 git 仓库 git init git add . git commit -m "feat: Init." # 配置应用市场管理器, 插件管理器, 命令字管理器的安装源(此步骤仅在需要最新管理器功能时配置) # composer config repositories.plugin-manager vcs https://gitee.com/fresns/plugin-manager # composer config repositories.market-manager vcs https://gitee.com/fresns/market-manager # composer config repositories.cmd-word-manager vcs https://gitee.com/fresns/cmd-word-manager
- 修改依赖包约束
⚠️注意:需要确保项目
composer.json
允许安装稳定性依赖为dev
的扩展包
{ ... "minimum-stability": "dev", "prefer-stable": true, ... }
- 安装插件管理器,并完成初始化。
# 安装 Laravel 的应用市场管理器 composer require plugins-world/market-manager # 配置 .env 中的数据库与项目信息 APP_NAME= APP_URL= DB_HOST= DB_DATABASE= DB_USERNAME= DB_PASSWORD= # 执行迁移,增加 plugins 表 php artisan migrate # 提交仓库变动。方便查看 saas 初始化的文件 git add . git commit -m "feat: Install laravel market-manager."
-
正确配置项目权限
宝塔:chown www:www -R /path/to/laravel-test
-
访问:
http://域名/market-manager
,查看安装结果
挑选插件
访问 http://域名/market-manager
,打开左侧的插件市场菜单,并在其中查找需要的插件。进入插件详情页后点击安装。
⚠️注意:独立打开插件市场,不会显示安装按钮。
插件管理页的访问限制
⚠️注意:
- MarketManager 默认只允许
local
与develop
环境访问。 - Plugin 默认全部放行访问。
- 如果需要限制访问权限,可以在
app/Providers/AppServiceProvider.php
的boot
函数中,通过指定 MarketManager 如何进行认证来完成限制,参考如下:
操作步骤:
- 安装 SanctumAuth 插件
- 通过 artisan 命令 app:user-add 创建一个初始账号
- 正确配置主程序。下面是配置参考
- 通过
AppServiceProvider
授权
\Plugins\MarketManager\MarketManager::auth(function ($request, $next) { // return \Illuminate\Support\Facades\Auth::onceBasic() ?: $next($request); }); \Plugins\MarketManager\MarketManager::pluginAuth(function ($request, $next) { // return \Illuminate\Support\Facades\Auth::onceBasic() ?: $next($request); }); # 配置首页默认路由,并进行 basic 认证(需要在数据库创建 users 信息,通过 email, password 登录) Route::domain(parse_url(config('app.url'), PHP_URL_HOST))->get('/', function () { return redirect('/market-manager'); return view('welcome'); })->middleware('auth.basic');
- 通过命令字
\FresnsCmdWord::plugin('Manager')->checkAuth([])
授权 MarketManager 访问,需要自行实现Manager
的checkAuth
命令字。 - 通过命令字
\FresnsCmdWord::plugin('Manager')->checkPluginAuth([])
授权 Plugin 访问,需要自行实现Manager
的checkPluginAuth
命令字。
说明
- 符合插件管理器开发规范的插件可以被安装
- 插件安装方式:
- 从 url 安装 zip 插件
- 从 github url 安装私有插件
- 从 github url 安装公开插件
- 从 下载站获取 url 安装插件:https://apps.plugins-world.cn
- 从 https://packagist.org 通过安命令完成插件安装
- 上传 zip 插件到服务器进行安装
- 从指定目录安装
- 从插件市场安装插件(开发中)
- 目前,官方插件代码仓库为:https://github.com/plugins-world/plugins
- 项目需要配置好权限,避免插件无法下载,解压,安装。插件的安装需要 web 程序的用户读取、创建目录。
- 每次安装后,插件默认关闭,需要进行启用操作。