火山PHP/hyper-admin

Hyper MVT框架的简单管理面板

v1.0.0 2024-08-07 12:31 UTC

This package is auto-updated.

Last update: 2024-09-07 13:37:29 UTC


README

Hyper Admin - README

Hyper Admin

Hyper MVT框架的管理面板

简介

Hyper Admin 是为 Hyper MVT 框架设计的简单而强大的管理面板。它提供了一个用户友好的界面来管理您的应用程序数据,类似于 Django 的 contrib admin 面板。

安装

建议使用 Composer 安装 Hyper Admin。

要安装,请运行以下命令

composer require vulcanphp/hyper-admin

设置 Hyper Admin

在您的应用程序中注册 Hyper Admin

要设置 Hyper Admin,您需要将其与您的应用程序的 bootstrap 文件合并。

打开您的 app/bootstrap.php 文件并添加以下代码

use admin\admin;

return new application(
    providers: [[new admin(), 'setup']],
    env: [
        'admin' => __DIR__ . '/web/admin.php',
    ],
);

配置管理设置

创建一个新文件 app/web/admin.php 并配置您的管理设置。此文件将定义您的管理面板的用户、模型、菜单和设置。

示例配置

# app/web/admin.php
return [
    'user' => ['name' => 'admin', 'password' => 'admin'],
    'models' => [
        // Register models to manage
    ],
    'menus' => [
        // Register admin menu with template or callback
        // Example 1: ['settings' => __DIR__ . '/admin/settings.php']
        // Example 2: ['cms' => function() {}]
        // Example 3: ['api' => 'Hello From Api Key']
    ],
    'settings' => [
        // Register all grouped settings
        'general' => [
            // Register inputs for this group.
            // Example 1: ['type' => 'text', 'name' => 'title']
            // Example 2: ['type' => 'file', 'name' => 'logo']
        ],
        // ... more groped settings
    ],
];

设置使用方法

您可以在 app/bootstrap.php 文件中的 settings 数组中获取注册到 app/bootstrap.php 文件中的设置值。

// get a setting with default value
var_dump(setting('general', 'title', 'My Default Title'));

// get settings instance
var_dump(settings());

模型视图使用方法

在管理面板中注册模型时,您需要配置额外的模型设置以自定义其行为和外观。

基本模型注册

对于基本模型注册,只需包含模型类

# app/web/admin.php
use models\subject;

return [
    'models' => [
        subject::class,
    ],
];

自定义模型注册

对于更自定义的设置,请使用 modelView 类。以下是一个完整示例

# app/web/admin.php
use models\subject;
use models\student;
use admin\core\modelView;

return [
    'models' => [
        subject::class, // Basic model
        new modelView(
            model: student::class,
            name: 'student',
            name_plural: 'students',
            fields: ['id', 'name', 'age', 'department'],
            search: ['name'],
            filter: ['gender' => ['M' => 'Male', 'F' => 'Female']],
            with: ['department'],
            where: ['deleted' => false],
            order: 'id DESC',
            actions: ['Export Selected Students Result Sheet' => admin_url('student/export')]
        ), // Customized model
    ],
];

modelView 参数说明

  • model: 要管理的模型类。
  • name: 模型的单数名称(例如,'学生')。
  • name_plural: 模型的复数名称(例如,'学生们')。
  • fields: 在管理面板中显示的字段。
  • search: 包含在搜索功能中的字段。
  • filter: 应用过滤器(例如,带有选项的性别过滤器)。
  • with: 包含的关系(例如,'部门')。
  • where: 应用条件(例如,仅包含未删除的记录)。
  • order: 记录的默认排序(例如,'id DESC')。
  • actions: 模型可用的自定义操作(例如,导出功能)。

抽屉使用方法

对于本地存储的数组,请使用 drawer 类。以下是一个完整示例

use admin\core\drawer;

$drawer = new drawer(__DIR__ .'/settings.dr');

// set a value into drawer
$drawer->set(layer: 'general', key: 'title', value: 'My Hyper App');

// get a value from drawer
var_dump($drawer->get(layer: 'general', key: 'title', default: 'My Default Title'));

drawer 函数说明

  • has: 检查抽屉中是否存在值。
  • is: 检查抽屉中的值是否为真。
  • get: 从抽屉中获取值。
  • set: 将值设置到抽屉中。
  • setup: 将多个值设置到抽屉中。
  • remove: 从抽屉中删除值。