Laravel 模块化开发模块 – Caffienate
Laravel多模块配置
1. 安装对应版本"caffeinated/modules"
- composer require caffeinated/modules 相应版本号
Laravel版本 | caffeinated/modules版本 |
5.0 | v1.2.3 |
5.1 | v2.0.1 - v3.2.5 |
5.2 | v2.2 - v3.2.5 |
5.3 | v4.0 - v4.1.6 |
5.4 | v4.2 - v4.2.1 |
5.5 | v4.2.2, v4.3.2 |
5.6 | v4.3 - v4.3.2 |
5.7 | v4.4 - v5.0.2 |
5.8 | v5.1.0 - v5.2.0 |
6.0 | v5.2.0 - v6.0.1 |
2. 生成配置文件
- php artisan vendor:publish --provider="Caffeinated\Modules\ModulesServiceProvider" --tag="config"
执行命令后会在config文件夹中生成modules.php
3. 引入服务提供者与别名
进入文件config/app.php,添加以下内容:
- // 找到providers数组在尾部添加代码
- Caffeinated\Modules\ModulesServiceProvider::class
- // 找到aliases数组在尾部添加代码
- 'Module' => Caffeinated\Modules\Facades\Module::class,
4. 创建新模块
- php artisan make:module 模块名称

- kuguats@kuguats-vb:/var/www/jx3box-helper$ php artisan make:module admin
- *-----------------------------------------------*
- | |
- | Copyright (c) 2016 |
- | Shea Lewis |
- | |
- | Thanks for using Caffeinated! |
- *-----------------------------------------------*
- ______ ___ _________ ______
- ___ |/ /___________ /___ ____ /____________
- __ /|_/ /_ __ \ __ /_ / / /_ /_ _ \_ ___/
- _ / / / / /_/ / /_/ / / /_/ /_ / / __/(__ )
- /_/ /_/ \____/\__,_/ \__,_/ /_/ \___//____/
- *-----------------------------------------------*
- | |
- | Step #1: Configure Manifest |
- | |
- *-----------------------------------------------*
- Please enter the name of the module: [Admin]:
- >
- Please enter the slug for the module: [admin]:
- >
- Please enter the module version: [1.0]:
- >
- Please enter the description of the module: [This is the description for the Admin module.]:
- >
- You have provided the following manifest information:
- Name: Admin
- Slug: admin
- Version: 1.0
- Description: This is the description for the Admin module.
- Basename (auto-generated): Admin
- Namespace (auto-generated): App\Modules\Admin
- If the provided information is correct, type "yes" to generate. (yes/no) [no]:
- > yes
- Thanks! That's all we need.
- Now relax while your module is generated.
- 2/2 [============================] 100%
- Module generated successfully.

5. 命名空间
添加视图命名空间

- // 可以在服务提供者register方法内添加代码
- View::addNamespace('{命名空间名}', '{视图模板文件夹路径}');
- // 当调用视图时
- return view("admin::index.index");
- // 会先检索resources/views/vendor/admin上是否存在视图文件
- // 如果不存对应视图则继续检索app/Modules/admin/Resources/Views

6. 相关命令

- make:module
- make:module:controller
- make:module:migration
- make:module:request
- make:module:test
- module:disable
- module:enable
- module:list
- module:migrate
- module:migrate:refresh
- module:migrate:reset
- module:migrate:rollback
- module:seed

Laravel 模块化开发模块 – Caffienate的更多相关文章
- JavaScript模块化开发&&模块规范
在做项目的过程中通常会有一些可复用的通用性功能,之前的做法是把这个功能抽取出来独立为一个函数统一放到commonFunctions.js里面(捂脸),实现类似于snippets的代码片段收集. fun ...
- js模块化开发——模块的写法
随着网站逐渐变成"互联网应用程序",嵌入网页的Javascript代码越来越庞大,越来越复杂. 网页越来越像桌面程序,需要一个团队分工协作.进度管理.单元测试等等......开发者 ...
- C04 模块化开发
目录 模块化开发概述 函数概述 如何使用函数 字符串处理函数 模块化开发特点 模块化开发概述 概述 C语言是面向过程的语言,意味着编写C语言程序的时候,我们要像计算机一样思考如何设计程序. 模块化开发 ...
- laravel5.2 增加Caffienate Modules,实现模块化开发
1.模块化开发可以把框架分成 Topc前台模块,Topm手机端前台,Admin后台管理模块,每个模块中都有自己的一套Controller,Logic,router等. 2.咖啡因模块是一个简单的包,以 ...
- 模块化开发 | es6模块暴露与引入
CommonJS模块开发 CommonJS定义 每个文件就一个模块,有自己的作用域.在一个文件里面定义的变量.函数.类,都是私有的,对其他文件不可见. 私有作用域不会污染全局作用域. 模块可加载多次, ...
- 初学seaJs模块化开发,利用grunt打包,减少http请求
原文地址:初学seaJs模块化开发,利用grunt打包,减少http请求 未压缩合并的演示地址:demo2 学习seaJs的模块化开发,适合对seajs基础有所了解的同学看,目录结构 js — —di ...
- JS模块化开发:使用SeaJs高效构建页面
一.扯淡部分 很久很久以前,也就是刚开始接触前端的那会儿,脑袋里压根没有什么架构.重构.性能这些概念,天真地以为前端===好看的页面,甚至把js都划分到除了用来写一些美美的特效别无它用的阴暗角落里,就 ...
- iOS关于模块化开发解决方案(纯干货)
关于iOS模块化开发解决方案网上也有一些介绍,但真正落实在在具体的实例却很少看到,计划编写系统文章来介绍关于我对模块化解决方案的理解,里面会有包含到一些关于解耦.路由.封装.私有Pod管理等内容:并编 ...
- Angular 结合RequireJs实现模块化开发
angular的指令是模块化很好的一个体现,下面我将只使用指令(不用控制器),结合requirejs,实现模块化开发. 模块化关系图:
- .NET/ASP.NET MVC(模块化开发AraeRegistration)
阅读目录: 1.开篇介绍 2.AreaRegistration注册路由(传递路由上下文进行模块化注册) 1]开篇介绍 ASP.NET Routing 路由功能非常强大,设计的也很巧妙:如果说ASP.N ...
随机推荐
- Windows下Net6开源akstream项目vs2022调试GB28181协议对接摄像头全流程
一.背景介绍 笔者经历多个项目对接摄像头需求,不同项目具体要求又有所不同,碰到的摄像头对接开发问题,整理记录.此篇主要用于记录备用及给有缘人提供解决思路等. 1. 同一局域网对接(海康摄像头),如 ...
- 探索生成式AI的未来:Chat与Agent的较量与融合
近年来,生成式人工智能(AI)不仅在技术界引起了广泛关注,更成为了推动多个行业革新的关键力量.这种技术之所以备受瞩目,不仅在于其独特的创造性和高效性,还在于它对未来商业模式和社会结构可能产生的深远影响 ...
- DEB打包教程
一.deb简介 deb是一种安装包的格式,linux上常见的安装包主要是deb.rpm 二.deb简单使用 # deb安装 sudo dpkg -i webcamera_1.0_amd64.deb # ...
- centos运行django,遇到sqlite报错
在centos上运行django,报错: django.core.exceptions.ImproperlyConfigured: SQLite 3.9.0 or later is required ...
- 论文记载:A Survey on Traffic Signal Control Methods
ABSTRACT 交通信号控制是一个重要且具有挑战性的现实问题,其目标是通过协调车辆在道路交叉口的移动来最小化车辆的行驶时间.目前使用的交通信号控制系统仍然严重依赖过于简单的信息和基于规则的方法,尽管 ...
- react中引入css的方式有哪几种?区别?
一.是什么 组件式开发选择合适的css解决方案尤为重要 通常会遵循以下规则: 可以编写局部css,不会随意污染其他组件内的原生: 可以编写动态的css,可以获取当前组件的一些状态,根据状态的变化生成不 ...
- javascript现代编程系列教程之一:区块作用域对VAR不起作用的问题
在JavaScript中,使用var声明的变量具有函数作用域,而不是块级作用域.这意味着在一个函数内部,使用var声明的变量在整个函数范围内都是可见的,包括嵌套的块(如if语句.for循环等).为了避 ...
- 使用GitHub Actions和GitHub pages实现前端项目的自动打包部署
1. 引言 As we all know,前端部署项目是比较简单的,通常情况下只需要将打包的产物(index.html..js文件..css文件等)放在Web服务器下就,这种叫静态资源托管,成本是比较 ...
- 牛客网-SQL专项训练18
①在下列sql语句错误的是?B 解析: 在sql中若要取得NULL,则必须通过IS NULL或者IS NOT NULL进行获取,无法直接使用等号. 一个等号(=)表示把1赋值给变量啊 ==:称为等值符 ...
- 一种命令行解析的新思路(Go 语言描述)
简介: 本文通过打破大家对命令行的固有印象,对命令行的概念解构后重新梳理,开发出一种功能强大但使用极为简单的命令行解析方法.这种方法支持任意多的子命令,支持可选和必选参数,对可选参数可提供默认值,支 ...