Skip to content

框架配置

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 adminID,默认 1

  • module 模块相关配置

    • root 配置模块的根目录
    • namespace 模块根命名空间
    • default 默认模块,初始化 develop, use, common 三个模块
    • default_dirs 默认生成默认的目录
    • driver 模块配置驱动 默认是 file
    • routes 模块路由集合
  • response 响应配置

    • always_json 响应输出 Json
    • request_handled_listener 响应数据格式配置
  • auth 认证相关配置

  • listen_db_log 是否监听 DB SQL

  • route 路由配置

    • 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

那么如何获取呢?按照 Laravel 的模式,应该还用下面的代码获取配置内容

php
config('one')

但是因为是模块化独立的,所以获取上一定要加入模块的名称,最终应该是这么获取

php
config('permissions.one.some_key')