geekor / laravel-backend-master
Geekor's laravel backend for v9.x
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-10-27 14:28:18 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 = []; }