PHPackages                             xditn/xditn-module - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. xditn/xditn-module

ActiveLibrary[Framework](/categories/framework)

xditn/xditn-module
==================

Laravel modular admin framework core package with CRUD generation, permission control, and API versioning

v1.1.2(3mo ago)03MITPHPPHP ^8.2

Since Jan 12Pushed 3mo agoCompare

[ Source](https://github.com/lanrongxiang/xditn-xditn-module)[ Packagist](https://packagist.org/packages/xditn/xditn-module)[ Docs](https://github.com/xditn/xditn-module)[ RSS](/packages/xditn-xditn-module/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (11)Versions (13)Used By (0)

XditnModule
===========

[](#xditnmodule)

XditnModule 是一个基于 Laravel 的模块化后台管理框架核心包，提供模块管理、CRUD 生成、权限控制、API 版本控制等功能。

环境要求
----

[](#环境要求)

- PHP 8.2+
- Laravel 11.0+ / 12.0+
- MySQL 5.7+ / MariaDB 10.3+
- Composer 2.0+
- Git（用于安装命令检测）
- Redis（可选，用于缓存和队列）

完整安装流程
------

[](#完整安装流程)

### 第一步：创建 Laravel 项目（已有项目跳过）

[](#第一步创建-laravel-项目已有项目跳过)

```
composer create-project laravel/laravel my-admin
cd my-admin
```

### 第二步：配置数据库

[](#第二步配置数据库)

编辑 `.env` 文件，配置数据库连接：

```
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name
DB_USERNAME=your_username
DB_PASSWORD=your_password
```

**确保数据库已创建且可以连接。**

### 第三步：安装 XditnModule

[](#第三步安装-xditnmodule)

**方式一：使用 Packagist（推荐）**

```
composer require xditn/xditn-module
```

**方式二：使用 GitHub VCS（如果 Packagist 未同步最新版本）**

在 `composer.json` 中添加 VCS 仓库：

```
{
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/lanrongxiang/xditn-xditn-module.git"
        }
    ]
}
```

然后安装：

```
composer require xditn/xditn-module --ignore-platform-reqs --no-audit
```

### 第四步：发布配置文件

[](#第四步发布配置文件)

```
php artisan vendor:publish --provider="XditnModule\Providers\XditnModuleServiceProvider"
```

这会发布以下文件：

- `config/xditn.php` - 框架配置文件

### 第五步：配置默认模块（可选）

[](#第五步配置默认模块可选)

编辑 `config/xditn.php`，配置需要安装的模块：

```
'module' => [
    // 默认安装的模块
    'default' => [
        'user',        // 用户模块（必需）
        'permissions', // 权限模块（必需）
        'system',      // 系统模块（必需）
        'common',      // 通用模块（必需）
        'develop',     // 开发工具
        // 可选模块
        // 'ai',
        // 'cms',
        // 'mail',
        // 'member',
        // 'openapi',
        // 'pay',
        // 'wechat',
        // 'domain',
    ],
],
```

### 第六步：运行安装命令

[](#第六步运行安装命令)

```
php artisan xditn:module:install
```

安装命令会自动执行：

1. 生成 APP\_KEY（如果没有）
2. 发布配置文件
3. 运行数据库迁移
4. 填充初始数据（管理员账号等）
5. 安装配置的模块

**生产环境安装：**

```
php artisan xditn:module:install --prod
```

**Docker 环境安装：**

```
php artisan xditn:module:install --docker
```

**强制重新安装（更新模块代码）：**

```
php artisan xditn:module:install --fresh
```

> 使用 `--fresh` 参数会：
>
> 1. 删除 `storage/app/modules.json` 模块记录
> 2. 重新发布所有模块到 `modules/` 目录（覆盖现有文件）
> 3. 重新运行迁移和数据填充

**不发布模块（保留 vendor 中的模块）：**

```
php artisan xditn:module:install --no-publish
```

### 单独发布模块

[](#单独发布模块)

如果只想发布或更新某个模块：

```
# 发布所有模块
php artisan xditn:module:publish --all

# 发布指定模块
php artisan xditn:module:publish User

# 强制覆盖已存在的模块
php artisan xditn:module:publish User --force
```

### 第七步：启动服务

[](#第七步启动服务)

```
php artisan serve
```

访问 `http://127.0.0.1:8000`

### 第八步：登录管理后台

[](#第八步登录管理后台)

- **默认账号**：`admin@xditn.com`
- **默认密码**：`xditn`

> 首次登录后请立即修改密码！

---

安装常见问题
------

[](#安装常见问题)

### Q: 提示 "Git 未安装"

[](#q-提示-git-未安装)

确保 Git 已安装并添加到系统 PATH 环境变量。

**Windows**：

1. 找到 Git 安装目录（通常是 `C:\Program Files\Git\bin`）
2. 添加到系统环境变量 PATH

**验证**：

```
git --version
```

### Q: 提示 "jwt:secret" 命令不存在

[](#q-提示-jwtsecret-命令不存在)

这是正常的，如果您没有安装 `tymon/jwt-auth` 包，此命令会被跳过。

如需 JWT 认证：

```
composer require tymon/jwt-auth
php artisan jwt:secret
```

### Q: 模块安装失败

[](#q-模块安装失败)

1. 确保数据库连接正确
2. 确保有足够的数据库权限
3. 尝试重新运行：`php artisan xditn:module:install`

### Q: 提示 "Module \[xxx\] has been created"

[](#q-提示-module-xxx-has-been-created)

这表示模块已在 `storage/app/modules.json` 中记录，但可能数据库没有数据。

**解决方案 1：强制重新安装**

```
php artisan xditn:module:install --fresh
```

**解决方案 2：手动删除模块记录**

```
rm -f storage/app/modules.json
php artisan xditn:module:install
```

**解决方案 3：仅运行迁移和 seed**

```
php artisan migrate
php artisan xditn:module:migrate user
php artisan xditn:module:db:seed user
# 依次处理其他模块...
```

### Q: 时间显示为 1970-01-01

[](#q-时间显示为-1970-01-01)

从模型的 `$fillable` 数组中移除时间戳字段（`created_at`, `updated_at`, `deleted_at`）。

### Q: decimal 字段报错 "Incorrect decimal value"

[](#q-decimal-字段报错-incorrect-decimal-value)

在模型中设置：

```
protected bool $autoNull2EmptyString = false;
```

---

目录结构
----

[](#目录结构)

安装完成后的目录结构：

```
project/
├── app/                        # Laravel 应用目录
├── config/
│   └── xditn.php              # XditnModule 配置
├── database/
│   └── migrations/            # Laravel 迁移文件
├── modules/                   # 所有模块（安装时自动发布）
│   ├── User/                  # 用户管理
│   ├── Permissions/           # 权限管理
│   ├── System/                # 系统设置
│   ├── Common/                # 通用功能
│   ├── Develop/               # 开发工具
│   └── MyModule/              # 你自己创建的模块
└── vendor/
    └── xditn/xditn-module/    # 框架核心代码

```

**重要说明**：

- 安装时框架模块会自动发布到 `modules/` 目录
- 你可以自由修改 `modules/` 目录下的任何代码
- 更新框架后，使用 `--fresh` 参数可更新模块代码

### 模块目录结构

[](#模块目录结构)

```
modules/{ModuleName}/
├── database/
│   ├── migrations/            # 数据库迁移
│   └── seeders/              # 数据填充
├── Http/
│   ├── Controllers/          # 控制器
│   ├── Requests/             # 表单请求验证
│   └── Resources/            # API 资源
├── Models/                    # 模型
├── Services/                  # 服务类
├── Observers/                 # 模型观察者
├── Enums/                     # 枚举类
├── routes/
│   └── route.php             # 模块路由
└── Installer.php             # 模块安装器

```

---

创建自定义模块
-------

[](#创建自定义模块)

### 1. 初始化模块

[](#1-初始化模块)

```
php artisan xditn:module:init MyModule
```

这会在 `modules/` 目录下创建模块基础结构。

### 2. 创建数据库迁移

[](#2-创建数据库迁移)

```
php artisan xditn:module:make:migration MyModule my_table
```

编辑迁移文件后运行：

```
php artisan xditn:module:migrate MyModule
```

### 3. 生成 CRUD

[](#3-生成-crud)

```
php artisan xditn:module:make:crud MyModule MyResource --subgroup=资源管理
```

这会生成：

- 模型
- 控制器
- 请求验证类
- 服务类

### 4. 添加路由

[](#4-添加路由)

编辑 `modules/MyModule/routes/route.php`：

```
