# Kylin Modules 文档索引

## 1. 模块介绍

Kylin Modules 是一个基于 Laravel 框架的模块化开发工具，支持将应用拆分为独立的模块，每个模块包含控制器、模型、视图、路由等，实现代码的解耦和复用。

## 2. 文档目录

### 2.1 基础文档

- [模块介绍](introduction.md) - Kylin Modules 模块的概述和核心功能
- [安装配置](installation.md) - Kylin Modules 的安装和配置方法
- [模块管理](module_management.md) - 模块的创建、安装、启用、禁用和卸载

### 2.2 核心功能

- [路由管理](routes.md) - 模块的路由配置和管理
- [控制器管理](controllers.md) - 模块的控制器创建和管理
- [模型管理](models.md) - 模块的模型创建和管理
- [视图管理](views.md) - 模块的视图创建和管理
- [配置管理](config.md) - 模块的配置创建和管理
- [命令行工具](commands.md) - 模块的命令行工具使用

## 3. 快速开始

### 3.1 安装

```bash
composer require kylin/modules
```

### 3.2 发布配置

```bash
php artisan vendor:publish --provider="Kylin\Modules\Providers\ModulesServiceProvider"
```

### 3.3 创建模块

```bash
php artisan module:create Blog
```

### 3.4 启用模块

```bash
php artisan module:enable Blog
```

### 3.5 访问模块

在浏览器中访问：`http://your-domain.com/blog`

## 4. 模块结构

```
modules/
├── Blog/
│   ├── config/
│   │   └── blog.php
│   ├── src/
│   │   ├── Controllers/
│   │   │   └── BlogController.php
│   │   ├── Models/
│   │   │   └── Post.php
│   │   ├── Views/
│   │   │   └── index.blade.php
│   │   ├── Routes/
│   │   │   └── web.php
│   │   └── Providers/
│   │       └── BlogServiceProvider.php
│   └── composer.json
```

## 5. 核心功能

### 5.1 模块管理

- **创建模块**：`php artisan module:create {module}`
- **安装模块**：`php artisan module:install {module}`
- **启用模块**：`php artisan module:enable {module}`
- **禁用模块**：`php artisan module:disable {module}`
- **卸载模块**：`php artisan module:uninstall {module}`
- **列出模块**：`php artisan module:list`
- **模块状态**：`php artisan module:status {module}`

### 5.2 路由管理

- **Web 路由**：`modules/{Module}/Routes/web.php`
- **API 路由**：`modules/{Module}/Routes/api.php`
- **路由前缀**：为模块路由添加前缀
- **路由命名**：为模块路由指定名称

### 5.3 控制器管理

- **基础控制器**：`modules/{Module}/Controllers/{Controller}.php`
- **API 控制器**：`modules/{Module}/Controllers/Api/{Controller}.php`
- **依赖注入**：支持构造函数和方法注入
- **中间件**：支持控制器中间件

### 5.4 模型管理

- **基础模型**：`modules/{Module}/Models/{Model}.php`
- **数据库迁移**：`modules/{Module}/database/migrations/{Migration}.php`
- **模型关系**：支持一对一、一对多、多对多关系
- **模型事件**：支持创建、更新、删除等事件

### 5.5 视图管理

- **基础视图**：`modules/{Module}/Views/{View}.blade.php`
- **视图继承**：支持继承应用布局
- **视图组件**：支持创建和使用组件
- **视图共享**：支持共享全局和局部数据

### 5.6 配置管理

- **基础配置**：`modules/{Module}/config/{Module}.php`
- **配置加载**：自动加载模块配置
- **配置发布**：支持发布配置到应用目录
- **环境变量**：支持使用环境变量

### 5.7 命令行工具

- **模块命令**：`php artisan module:{command}`
- **自定义命令**：支持创建模块自定义命令
- **命令注册**：自动注册模块命令

## 6. 常见问题

### 6.1 模块创建失败

**问题**：模块创建失败
**解决方案**：
1. 检查模块名称是否符合规范
2. 检查模块目录是否已存在
3. 检查文件权限是否正确

### 6.2 模块启用失败

**问题**：模块启用失败
**解决方案**：
1. 检查模块是否存在
2. 检查模块的服务提供者是否正确
3. 检查模块的配置是否正确

### 6.3 路由未找到

**问题**：模块路由未找到
**解决方案**：
1. 检查模块是否已启用
2. 检查路由文件是否存在
3. 检查路由定义是否正确
4. 检查路由缓存是否已清除

### 6.4 控制器未找到

**问题**：模块控制器未找到
**解决方案**：
1. 检查控制器文件是否存在
2. 检查控制器命名空间是否正确
3. 检查路由中的控制器引用是否正确
4. 检查自动加载是否正确配置

### 6.5 模型未找到

**问题**：模块模型未找到
**解决方案**：
1. 检查模型文件是否存在
2. 检查模型命名空间是否正确
3. 检查模型引用是否正确
4. 检查自动加载是否正确配置

### 6.6 视图未找到

**问题**：模块视图未找到
**解决方案**：
1. 检查视图文件是否存在
2. 检查视图路径是否正确
3. 检查视图命名空间是否正确
4. 检查服务提供者中的视图加载是否正确

### 6.7 配置未加载

**问题**：模块配置未加载
**解决方案**：
1. 检查配置文件是否存在
2. 检查服务提供者中的配置加载是否正确
3. 检查配置缓存是否已清除

## 7. 最佳实践

1. **模块命名**：使用清晰、描述性的模块名称
2. **目录结构**：遵循统一的模块目录结构
3. **命名规范**：使用清晰、描述性的文件和类名称
4. **服务提供者**：每个模块创建一个服务提供者
5. **依赖管理**：在模块的 `composer.json` 文件中管理依赖
6. **版本控制**：为每个模块单独进行版本控制
7. **测试**：为每个模块编写测试
8. **文档**：为每个模块编写文档

## 8. 参考资源

- [Laravel 文档](https://laravel.com/docs)
- [Kylin Modules 文档](https://github.com/kylin-framework/modules)
- [PHP 文档](https://www.php.net/docs.php)
