dnt/laravel-module

v1.1 2022-03-03 19:32 UTC

This package is auto-updated.

Last update: 2024-08-29 06:07:26 UTC


README

设置

composer require dnt/laravel-module
  • 需要php >= 8.1

MODULE.JSON

  • 文件路径:modules/{namemodule}/module.json
  • 模板
{
  "name": "NameModule",
  "key": "key-module",
  "providers": [
    "namespace service provider"
  ],
  "aliases": {
    "alias": "namespace class"
  },
  "files": [
    "file path"
  ],
  "views": [
    "./views"
  ],
  "langs": [
    "./lang"
  ],
  "enable": true
}

示例

  • 模块购物车管理器
  • 结构
|-app
|-bootstrap
|-config
...
|-modules
|----CartManager
|-------Facades
|-----------Cart.php
|-------Providers
|-----------CartManagerServiceProvider.php
|-------views
|------------index.blade.php
|-------lang
|------------en
|----------------validation.php
|------------en.json
|-------helpers.php
|-------module.json
...
|-composer.json
|.env
...
{
  "name": "Cart Manager",
  "key": "cart-manager",
  "providers": [
    "CartManager\\Providers\\CartManagerServiceProvider"
  ],
  "aliases": {
    "Cart": "CartManager\\Facades\\Cart"
  },
  "files": [
    "./helpers.php"
  ],
  "views": [
    "./views"
  ],
  "langs": [
    "./lang"
  ],
  "enable": true
}

助手

  • 获取模块
app(\DNT\Module\Contracts\Management::class)->get('cart-manager');
  • 获取所有模块
app(\DNT\Module\Contracts\Management::class)->all();
  • 启用模块
app(\DNT\Module\Contracts\Management::class)->enable('cart-manager');
  • 禁用模块
app(\DNT\Module\Contracts\Management::class)->disable('cart-manager');
  • 获取视图
// Controller
...
return view('cart-manager::index');
...
  • 获取翻译
__('cart-manager::name');