geekor / laravel-backend-master
Geekor 的 v9.x 版本 laravel 后端
dev-main
2022-05-27 05:30 UTC
Requires
- geekor/laravel-gk-core: dev-main
- illuminate/container: ^6.9|^7.0|^8.0|^9.0
- illuminate/database: ^6.9|^7.0|^8.0|^9.0
- illuminate/http: ^6.9|^7.0|^8.0|^9.0
- illuminate/support: ^6.9|^7.0|^8.0|^9.0
- spatie/laravel-permission: ^5.5
Requires (Dev)
- illuminate/testing: ^6.9|^7.0|^8.0|^9.0
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2024-09-27 14:21:43 UTC
README
本模块适用于新建项目时快速配置后台 RESTful 相关接口。
如何使用?
- 新建项目(例如:bm-demo目录名)
composer create-project laravel/laravel bm-demo --prefer-dist
cd bm-demo
-
修改 .env 文件,配置数据库连接信息。
-
安装依赖
composer require geekor/laravel-backend-master:*
上面的是安装 dev 版,也可以指定版本;
- 一键配置后台
./vendor/geekor/laravel-backend-master/scripts/install-module.sh
配置中间件
为了尽量减少对主项目的改动,我已经尽最大努力。然而,在导入本扩展包后,你仍然需要在主项目中修改以下文件:
// 位于文件 /app/Http/Kernel.php class Kernel extends HttpKernel { use \Geekor\BackendMaster\Traits\SettingRoutes; //... }
其他说明
本目录中的 composer.json 只用于发布到 Packagist.org 仓库中。
如果只在本地简单使用,在完成步骤 1 和 2 后,直接在项目根目录运行以下脚本即可:
./_packages/geekor/laravel-backend-master/scripts/install-module.sh
如果不使用权限系统,可以不使用上面的脚本,手动完成以下步骤
- 在项目根目录中的
/composer.json
文件中加入自动导入配置
{ "autoload": { "psr-4": { "App\\": "app/", "Geekor\\BackendMaster\\": "_packages/geekor/laravel-backend-master/src/", } } }
- 在
/config/app.php
添加服务
//... 'providers' => [ //... \Geekor\BackendMaster\ServiceProvider::class, ], //...
- 生成配置
php artisan vendor:publish --provider="Geekor\BackendMaster\ServiceProvider"
- 更新缓存
composer dump-autoload
- 执行数据库迁移(如果刚刚自动生成的迁移文件排序不再最新,请自行修改文件名)
php artisan migrate
如果是项目刚开始构建,以下命令可能对你有用:
php artisan bm:check #环境自查 php artisan bm:import-masters #生成默认管理员(此命令为不可见命令) php artisan bm:import-roles #导入默认权限 php artisan bm:refresh #重建数据库(慎用,此命令为不可见命令)
更多命令可以查看 src/Console/Commands/
目录。
注意:添加自定义命令后,需要添加到 src/ServiceProvider.php
中的 COMMANDS
。
添加扩展包的测试用例(在本地开发扩展包阶段)
- 将包发现添加到根目录 composer.json
"autoload-dev": { "psr-4": { "Tests\\": "tests/", "Geekor\\BackendMaster\\Database\\Factories\\": "_packages/geekor/laravel-backend-master/database/factories/", "Geekor\\BackendMaster\\Tests\\": "_packages/geekor/laravel-backend-master/tests/" } },
- 将扩展包中的测试用例添加到根目录 phpunit.xml 文件中的
<testsuites>
字段
<testsuites> <testsuite name="GeekorBackendMasterFeature"> <directory suffix="Test.php">./_packages/geekor/laravel-backend-master/tests/Feature</directory> </testsuite> <testsuite name="GeekorBackendMasterUnit"> <directory suffix="Test.php">./_packages/geekor/laravel-backend-master/tests/Unit</directory> </testsuite> </testsuites>
- 添加 Feature 测试用例
<?php namespace Geekor\BackendMaster\Tests\Feature; use Geekor\BackendMaster\Tests\Base\TestAuthCase; use Geekor\BackendMaster\Tests\Feature\Traits\AuthTokenCheck; class BrowseAdminsTest extends TestAuthCase { use AuthTokenCheck; // 下面属性的更多说明可查看 /tests/Base/TestAuthCase.php /** 用户登录时生成 TOKEN 需要的参数,用于表明是在哪台设备登录 */ protected $my_device_name = 'php-auto-test'; /** 标记当前测试 API 是管理员后台还是普通用户后台 */ protected $my_guard_is_master = true; /** 标记当前 API 是否需要特定的角色/权限才能访问 */ protected $my_guard_need_permission = true; /** 需要的特定角色/权限 */ protected $my_guard_roles = ['super_admin']; protected $my_guard_permissions = []; /** 当前测试的 API */ protected $my_testing_api = '/api/backend/admins'; /** 测试 API 需要的请求方式 */ protected $my_testing_method = 'get'; /** 参数 */ protected $my_testing_params = []; }