热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

laravelbladeinclude使用变量_如何通过模块/插件(laravelplugin)机制,灵活组织Laravel工程...

有时候我们需要把Laravel工程拆分成不同的模块或功能管理,可以分配不同的工程师负责不同的模块,也方便在不同的工程之间相互使用。有一个nwidartl
f75d97a4a53f0d5f4ea80f5411a34711.png

有时候我们需要把 Laravel 工程拆分成不同的模块或功能管理,可以分配不同的工程师负责不同的模块,也方便在不同的工程之间相互使用。

有一个 nwidart/laravel-modules 就是作为 modules 来管理的,但有些问题:

1. 生成的包里过于依赖 nwidart/laravel-modules,比如自动加载过程和 module_path 的函数依赖,造成生产环境也不能脱离,还有 modules.json 等一些啰嗦的多余文件。其实一点意义都没有,因为包通过 Laravel Service Provider 标准管理即可。
2. 目录结构和 laravel 有些出入,比如 Models,他起名叫 Entities。
3. 比如用 make-command,生成的 Command 和 Laravel 脚手架的内容也不一样,内容还有些啰嗦。

这个包解决了上面的问题,而且还可以制作标准的 composer package。

在我们实际项目里一直作为模块的管理方式,也可以考虑做成动态的插件机制。

一、安装

composer require --dev zencodex/package-make

二、使用方法

// Modules/NewPackage
php artisan package:make NewPackage// 目录结构:Modules/NewPackage
├── Config
│ └── config.php
├── Console
│ └── UserCommand.php
├── Database
│ ├── Migrations
│ ├── Seeders
│ │ └── NewPackageDatabaseSeeder.php
│ └── factories
├── Http
│ ├── Controllers
│ │ └── NewPackageController.php
│ ├── Middleware
│ ├── Requests
│ └── Resources
│ └── UserResource.php
├── Models
│ └── User.php
├── Providers
│ ├── NewPackageServiceProvider.php
│ └── RouteServiceProvider.php
├── Resources
│ ├── assets
│ │ ├── js
│ │ │ └── app.js
│ │ └── sass
│ │ └── app.scss
│ ├── lang
│ └── views
│ ├── index.blade.php
│ └── layouts
│ └── master.blade.php
├── Routes
│ ├── api.php
│ └── web.php
├── Tests
│ ├── Feature
│ └── Unit
├── composer.json
├── package.json
└── webpack.mix.js

三、项目里使用方法

option 1:

// app/Providers/AppServiceProvider.phpuse ModulesNewPackageProvidersNewPackageServiceProvider;class AppServiceProvider extends ServiceProviderpublic function register(){$this->app->register(NewPackageServiceProvider::class);...}

or
Edit config/app.php, add ModulesNewPackageProvidersNewPackageServiceProvider::class to providers.

'providers' => [IlluminateValidationValidationServiceProvider::class,IlluminateViewViewServiceProvider::class,ModulesNewPackageProvidersNewPackageServiceProvider::class...],

option 2:

// 1. edit composer.json, add following
"repositories": [{"type": "path","url": "Modules/*"}
]// use private package or gitlab
"repositories": [{"type": "vcs","url": "git@gitlab.example.com:/newpackage.git"}
]// 2. composer require local path package (replace package/newpackage to yours)
composer require package/newpackage

其他可参考:

https://github.com/zencodex/package-make​github.com
喜欢就给个 star 吧



推荐阅读
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 函子(Functor)是函数式编程中的一个重要概念,它不仅是一个特殊的容器,还提供了一种优雅的方式来处理值和函数。本文将详细介绍函子的基本概念及其在函数式编程中的应用,包括如何通过函子控制副作用、处理异常以及进行异步操作。 ... [详细]
  • 本文详细介绍了如何在VSCode环境中配置Prettier工具以支持TypeScript项目,同时结合ESLint实现代码风格的一致性和自动化格式化。 ... [详细]
  • 本文介绍了如何通过安装和配置php_uploadprogress扩展来实现文件上传时的进度条显示功能。通过一个简单的示例,详细解释了从安装扩展到编写具体代码的全过程。 ... [详细]
  • 将XML数据迁移至Oracle Autonomous Data Warehouse (ADW)
    随着Oracle ADW的推出,数据迁移至ADW成为业界关注的焦点。特别是XML和JSON这类结构化数据的迁移需求日益增长。本文将通过一个实际案例,探讨如何高效地将XML数据迁移至ADW。 ... [详细]
  • C/C++ 应用程序的安装与卸载解决方案
    本文介绍了如何使用Inno Setup来创建C/C++应用程序的安装程序,包括自动检测并安装所需的运行库,确保应用能够顺利安装和卸载。 ... [详细]
  • 本文提供了一个详尽的前端开发资源列表,涵盖了从基础入门到高级应用的各个方面,包括HTML5、CSS3、JavaScript框架及库、移动开发、API接口、工具与插件等。 ... [详细]
  • 利用Node.js实现PSD文件的高效切图
    本文介绍了如何通过Node.js及其psd2json模块,快速实现PSD文件的自动化切图过程,以适应项目中频繁的界面更新需求。此方法不仅提高了工作效率,还简化了从设计稿到实际应用的转换流程。 ... [详细]
  • Jupyter Notebook多语言环境搭建指南
    本文详细介绍了如何在Linux环境下为Jupyter Notebook配置Python、Python3、R及Go四种编程语言的环境,包括必要的软件安装和配置步骤。 ... [详细]
  • Android与JUnit集成测试实践
    本文探讨了如何在Android项目中集成JUnit进行单元测试,并详细介绍了修改AndroidManifest.xml文件以支持测试的方法。 ... [详细]
  • 本文详细介绍了如何搭建一个高可用的MongoDB集群,包括环境准备、用户配置、目录创建、MongoDB安装、配置文件设置、集群组件部署等步骤。特别关注分片、读写分离及负载均衡的实现。 ... [详细]
  • 本文详细介绍了PHPStorm在Mac和Windows系统下的快捷键使用技巧,帮助开发者提高编程效率。 ... [详细]
  • 本文介绍如何通过参数化查询来防止SQL注入攻击,确保数据库的安全性。示例代码展示了在C#中使用参数化查询添加学生信息的方法。 ... [详细]
  • 本文将深入解析 Lumen 框架中的中间件机制,并提供实用的应用指南。我们将从官方文档出发,重点解读 5.3 版本中的相关内容,帮助开发者更好地理解和使用中间件功能。通过具体示例,探讨中间件在请求处理流程中的作用及其配置方法。 ... [详细]
  • 如何撰写适应变化的高效代码:策略与实践
    编写高质量且适应变化的代码是每位程序员的追求。优质代码的关键在于其可维护性和可扩展性。本文将从面向对象编程的角度出发,探讨实现这一目标的具体策略与实践方法,帮助开发者提升代码效率和灵活性。 ... [详细]
author-avatar
-赵-宾-_879
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有