主题
框架配置
catchadmin 配置
首先先了解catchadmin
的项目相关配置
php
return [
/*
|--------------------------------------------------------------------------
| catch-admin 超级管理员
|--------------------------------------------------------------------------
|
| 可以设置超级管理的用户 ID
| 支持数组
*/
'super_admin' => 1,
/*
|--------------------------------------------------------------------------
| catch-admin 请求允许
|--------------------------------------------------------------------------
|
| 默认允许 GET 请求通过 RBAC 权限
*/
'request_allowed' => true,
/*
|--------------------------------------------------------------------------
| catch-admin 模块设置
|--------------------------------------------------------------------------
|
| 设置模块根目录
| 设置模块的根命名空间
| 设置模块默认生成的文件夹
*/
'module' => [
'root' => 'modules',
'namespace' => 'Modules',
/**
* 默认启动的模块
*/
'default' => ['develop', 'user', 'common'],
'default_dirs' => [
'Http'.DIRECTORY_SEPARATOR,
'Http'.DIRECTORY_SEPARATOR.'Requests'.DIRECTORY_SEPARATOR,
'Http'.DIRECTORY_SEPARATOR.'Controllers'.DIRECTORY_SEPARATOR,
'Models'.DIRECTORY_SEPARATOR,
],
// 模块存储驱动
// 默认使用文件驱动
'driver' => [
// currently, catchadmin support file and database
// the default is driver
'default' => 'file',
// use database driver
'table_name' => 'admin_modules',
],
/**
* 模块路由集合
*/
'routes' => [],
/**
* 模块是否自动加载
*
* 如果设置成 true,模块会自动全部加载
*/
'autoload' => env('CATCH_MODULE_AUTOLOAD', false),
],
/*
|--------------------------------------------------------------------------
| catch-admin 响应
|--------------------------------------------------------------------------
*/
'response' => [
// JSON 响应, 保证响应数据都是 json
'always_json' => \Catch\Middleware\JsonResponseMiddleware::class,
// 响应监听者
// 监听[RequestHandled]事件
'request_handled_listener' => \Catch\Listeners\RequestHandledListener::class,
],
/*
|--------------------------------------------------------------------------
| 数据库 SQL 日志
|--------------------------------------------------------------------------
*/
'listen_db_log' => env('APP_DEBUG', true),
/*
|--------------------------------------------------------------------------
| 管理员授权认证模型
|--------------------------------------------------------------------------
*/
'auth_model' => \Modules\User\Models\User::class,
/*
|--------------------------------------------------------------------------
| 管理员授权 Guard
|--------------------------------------------------------------------------
*/
'auth' => 'admin',
/*
|--------------------------------------------------------------------------
| 路由配置
|--------------------------------------------------------------------------
*/
'route' => [
'prefix' => 'api',
'middlewares' => [
\Catch\Middleware\AuthMiddleware::class,
\Catch\Middleware\JsonResponseMiddleware::class,
],
],
/*
|--------------------------------------------------------------------------
| 前端 Vue 视图文件夹路径
|
| 如果不设置,将不会生成相关的 Vue 文件
|--------------------------------------------------------------------------
*/
'views_path' => base_path('web'.DIRECTORY_SEPARATOR.'src'.DIRECTORY_SEPARATOR.'views'.DIRECTORY_SEPARATOR),
/*
|--------------------------------------------------------------------------
| 开启系统接口日志分析
|
| 接口日志依赖 Redis,提高性能
|--------------------------------------------------------------------------
*/
'system_api_log' => env('CATCH_SYSTEM_API_LOG', false),
];
super_admin
配置 super admin 的 ID,默认 1module
模块相关配置root
配置模块的根目录namespace
模块根命名空间default
默认模块,初始化develop
,use
,common
三个模块default_dirs
默认生成默认的目录driver
模块配置驱动 默认是 fileroutes
模块路由集合
response
响应配置always_json
响应输出Json
request_handled_listener
响应数据格式配置
auth
认证相关配置listen_db_log
是否监听 DB SQLroute
路由配置prefix
路由前缀middlewares
路由默认路由
views_path
配置前端项目 views 路径项目有定制需求,一定要看看这些配置
模块配置
除了整个系统的配置以外,系统还提供了模块化的配置,模块的配置也是相互独立的。如果模块需要配置,那么可以直接在模块目录下添加 config
目录,系统会自动加载配置文件。当然非要客制化下,也没问题。只需要在模块的Provider
下实现 configPath
这个方法即可
php
namespace Modules\Test\Providers;
use Catch\CatchAdmin;
use Catch\Providers\CatchModuleServiceProvider;
class TestServiceProvider extends CatchModuleServiceProvider
{
public function confitPath(): string
{
return config_path;
}
}
最终模块的配置如下结构
- Permissions
- config
- one.php
- two.php
- config
那么如何获取呢?按照 Laravel
的模式,应该还用下面的代码获取配置内容
php
config('one')
但是因为是模块化独立的,所以获取上一定要加入模块的名称,最终应该是这么获取
php
config('permissions.one.some_key')