PHPackages                             fast-cmf/cmf-modules - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. fast-cmf/cmf-modules

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

fast-cmf/cmf-modules
====================

The modules file

010PHP

Since May 27Pushed 1y agoCompare

[ Source](https://github.com/fast-cmf/cmf-modules)[ Packagist](https://packagist.org/packages/fast-cmf/cmf-modules)[ RSS](/packages/fast-cmf-cmf-modules/feed)WikiDiscussions main Synced today

READMEChangelogDependenciesVersions (1)Used By (0)

Laravel 模块化扩展包
==============

[](#laravel-模块化扩展包)

这个扩展包为Laravel 12提供模块化功能，允许您将应用拆分为多个模块，每个模块都有自己的控制器、视图、路由等。同时还提供了主题系统和钩子系统。

安装
--

[](#安装)

通过Composer安装:

```
composer require fastcmf/laravel-modules
```

安装后，发布配置文件:

```
php artisan vendor:publish --provider="Fastcmf\Modules\Providers\ModulesServiceProvider" --tag="config"
```

模块功能
----

[](#模块功能)

### 创建新模块

[](#创建新模块)

```
php artisan make:module Blog
```

这将创建一个名为Blog的新模块，包含以下目录结构:

```
app/Modules/Blog/
├── Controllers/
│   └── BlogController.php
├── Models/
├── Providers/
│   └── BlogServiceProvider.php
├── Routes/
│   ├── api.php
│   └── web.php
├── Views/
└── module.json

```

### 访问模块

[](#访问模块)

默认情况下，模块路由可通过`/blog`访问。

### 在模块中开发

[](#在模块中开发)

1. 创建控制器:

```
namespace App\Modules\Blog\Controllers;

use App\Http\Controllers\Controller;

class PostController extends Controller
{
    public function index()
    {
        return view('blog::posts.index');
    }
}
```

2. 创建视图:

在`app/Modules/Blog/Views`目录中创建视图文件。

3. 定义路由:

编辑`app/Modules/Blog/Routes/web.php`添加更多路由。

### 启用/禁用模块

[](#启用禁用模块)

```
// 启用模块
\Module::enable('Blog');

// 禁用模块
\Module::disable('Blog');
```

### 模块依赖

[](#模块依赖)

在`module.json`文件中定义依赖:

```
{
    "name": "Blog",
    "dependencies": ["User", "Comment"]
}
```

主题系统
----

[](#主题系统)

### 创建新主题

[](#创建新主题)

```
php artisan make:theme mytheme
```

这将创建一个名为mytheme的新主题，包含以下目录结构:

```
resources/themes/mytheme/
├── assets/
│   ├── css/
│   │   └── style.css
│   ├── js/
│   │   └── app.js
│   └── images/
├── views/
│   ├── layouts/
│   │   └── default.blade.php
│   └── index.blade.php
├── lang/
├── config/
└── theme.json

```

### 使用主题

[](#使用主题)

在控制器中:

```
public function index()
{
    // 切换到指定主题
    \Theme::set('mytheme');

    // 使用主题视图
    return view('theme::index');
}
```

或者使用中间件:

```
// 在路由中应用主题
Route::get('/', 'HomeController@index')->middleware('theme:mytheme');
```

### 获取主题资源

[](#获取主题资源)

在Blade模板中:

```

```

钩子系统
----

[](#钩子系统)

### 注册钩子

[](#注册钩子)

在模块的`hooks.php`文件中:

```
