[开源] LaravelPlus - 基于 Laravel 魔改,为方便实际业务使用 - 开发中

目的

为了减少重复 CURD 和新项目的配置麻烦等问题,(就是为了骗星星LaravelPlus )
如:

  • 现有的 infyomlabs/laravel-generator CODE 生成工具虽然好用,但是不太喜欢样式和代码结构。
  • 有些本地,测试,线上的配置需要频繁改动的需要。
  • 多个项目构建引入包,配置扩展等重复性操作

介绍

LaravelPlus 基于 Laravel 增加部分软件包初始安装和进行业务使用功能改动,来创建一个开箱即用的应用

版本基础

当前版本基于

PHP Laravel (影响不大,降低版本理论可以)
>=7.1.3 >=5.8

项目使用说明

下载项目

// 1. github (推荐)
$ git clone https://github.com/ElapseAnnals/LaravelPlus.git
$ git checkout v5.8.0 // 切换至当前最新稳定版本

// 或

// 2. composer
$ composer create-project elapse-annals/laravel-plus
$ mv laravel-plus  LaravelPlus

复制项目

//  1.在当前目录运行自动复制脚本 (推荐)
$ php LaravelPlus/create YourProject

// 或

//  2.在当前目录手动复制项目至自身项目
$ cd LaravelPlus
$ rm composer.lock
$ rsync -av --exclude  . --exclude  .. --exclude  .git/ --exclude  vendor/ --exclude  .github/ LaravelPlus/* YourProject
                    //  为消除对称  */
$ cd YourProject
$ rm composer.lock .env .travis
$ cp .env.example .env   

初始化

$ cd YourProject //  进入 YourProject 项目中
$ composer install   // 更新软件包 (请先已安装 composer )
$ php artisan key:generate    // 更新 key
$ php artisan vendor:publish // 发布扩展包的资源
$ php artisan migrate  // 迁移
$ php artisan storage:link // 图片资源软连接映射【非必须】

Tips:

  1. 兼容 laravel-plus 目录名

功能使用说明

创建 framework 分层脚本和资源映射:想法来源

framework 脚本创建内容:

  • Controller, Service, Repository 等文件和对应关联关系
  • Route 资源路由增加
  • Controller 中资源类型代码和模型数据处理(开发中)

直接使用本项目内容(推荐)

 $ php artisan make:framework Test  // 创建分层结构(推荐)
 $ php artisan make:framework Test --basis  // 创建系统分层和主要分层结构(Controller, Service, Repository)
 $ php artisan make:framework Test --D // 删除分层结构 

或引入 php-tool/laravel-plus-make Laravel Plus Make 插件软件包(更新进度略慢本项目)

$ composer require php-tool/laravel-plus-make
热切换配置使用(config/dynamic/)

在 .env 中设置 ENABLE_HOT_SWITCHING=true 后,会在 AppServiceProvider 进行 dynamic 映射(对性能有一定影响,慎用)

使用方式:

<?php
$env = config(‘dynamic.env‘);

dynamic 目录文件说明

  • production 生产环境 (必须配置)
  • develop 开发环境 (必须配置,以下配置继承 develop 配置)
    • test 测试环境
    • local 本地环境
    • simulation 仿真环境

Tips:

  1. .env 配置 DYNAMIC_IS_STRICT 控制热配是否严格模式(默认 false 关闭)

    • 严格模式下不会继承 production/develop,完全采用当前环境配置
  2. 默认在继承基础上有重复属性,会覆盖继承项
  3. 继承基础特有属性会被携带至当前配置
  4. config/dynamic.php 为 IDEA 提示文件,使用空 key 即可

优化默认路由中闭包

  • 路由中禁止使用闭包,如有需要请在 ClosureController 中注册
缓存清理
  • php artisan optimize:clear // (慎用)

    • php artisan view:clear
    • php artisan cache:clear // 应用程序缓存清理 (慎用 - 会清理 config.cache 中启用缓存 (file/db/redis 等))
    • php artisan route:cache
    • php artisan config:clear
    • php artisan clear-compiled // 清理编译
      php artisan debug:clear

性能优化(只建议生产环境使用)

  • php artisan optimize // 类映射加载优化(该命令会自动缓存 config/route)

    • php artisan config:cache // 配置缓存
    • php artisan route:cache // 路由
  • php artisan view:cache // 视图缓存
  • composer dump-autoload --optimize //
  • 开启 OpCache
    $ sudo vim /etc/php/7.2/fpm/php.ini
    // set opcache.enable=1
    // ...
    $ sudo service php5.6-fpm restart
    $ sudo service nginx restart
前端样式构建
$ npm run dev    // 本地开发,开启 debug 模式

$ npm run prod    // 线上部署(进行压缩资源)

$ npm run watch   // 监视编译(开发时建议启用)

改动内容

  • 设置日志打印默认按天执行(.env::LOG_CHANNEL)
  • 增加默认加载软件包
  • 增加前端资源
    • element-ui 样式框架(可选方案 iview)
  • 增加默认图片存储目录(storage/app/public/images)
  • 扩展结构分层 想法来源
    • 系统分层

      • Controllers 控制器层
    • 主要分层
      • Services 业务服务层
      • Repositories Repository 数据仓库层
      • Models 模型层(无需创建,默认通过模型工具创建)
    • 扩展分层
      • Presenters 固定业务主持中控层
      • Transformers 转化层 / 筛选层(筛选后在选择输出)
      • Formatters 格式化层(对于输出数据进行格式化,服务于 view 层),便于前端模版渲染与展示
  • 增加 Redis 多语言配置读取

待办

完善资源功能:Controller 中模型数据处理和数据返回

增加 Redis 多语言数据库,和迁移

增加动态视图模式和静态视图模式(渲染后生成 view)切换

完善 wiki

原文地址:https://www.cnblogs.com/ben1024/p/laravel-plus.html

时间: 2024-11-08 18:39:06

[开源] LaravelPlus - 基于 Laravel 魔改,为方便实际业务使用 - 开发中的相关文章

ThinkSNS+ 基于 Laravel master 分支,从 1 到 0,再到 0.1

什么是 ThinkSNS+09 年,由北京的团队开发了 ThinkSNS 涉足社交开源行业.这么多年累计不少客户.2014-2016,两年都在维护和开发之前基于 TP 的 ThinkSNS , 慢慢的引入新开发概念.终于,在2016年下半年,我们决定重写这个程序,抛弃之前的每一行代码.框架上,开发人员一致性的选择了 Laravel ,并取了一个看起来像手机厂商给手机命名的名字----ThinkSNS Plus 没错就是 Plus 也就是符号 + 因为我们更希望侧重移动端,这就是 ThinkSNS

魔改——MFC SDI转MDI

==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完整性. 未经作者同意请勿修改(包括本声明),保留法律追究的权利. 未经作者同意请勿用于出版.印刷或学术引用. 本文不定期修正完善,为保证内容正确,建议移步原文处阅读. 本文链接:http://www.cnblogs.com/wlsandwho/p/4286906.html =============

魔改——MDI多视图模板Tab/标签页 初始化/操作控件

==================================声明================================== 本文原创,转载在正文中显要的注明作者和出处,并保证文章的完整性. 未经作者同意请勿修改(包括本声明),保留法律追究的权利. 未经作者同意请勿用于出版.印刷或学术引用. 本文不定期修正完善,为保证内容正确,建议移步原文处阅读. 本文链接:http://www.cnblogs.com/wlsandwho/p/4288818.html =============

蓝缘系统第三版本即将开源;基于springMVC+Apache shiro? 1.2.3+Mybai

蓝缘系统第三版本即将开源:基于springMVC+Apache shiro 1.2.3+Mybaits3.x的权限系统,,开放源码,支持开源 1.0版和2.0版的源码已经开源1.0版本:http://blog.csdn.net/mmm333zzz/article/details/16863543 2.0版本:http://blog.csdn.net/mmm333zzz/article/details/37773589 关于3.0新版本的说明: 一大亮点: 采用最新的技术流行框架:springMV

【社交系统ThinkSNS+研发日记三】基于 Laravel Route 的 ThinkSNS+ Component

[社交系统ThinkSNS+研发日记系列] 一.<ThinkSNS+ 基于 Laravel master 分支,从 1 到 0,再到 0.1> 二.<基于 Laravel 开发 ThinkSNS+ 中前端的抉择(webpack/Vue)踩坑日记> 在前面,我介绍了拓展类型,分别有 plus-compnent 和 plus-plugin 两个,这里重点讲以下如何实现 plus-component 的. plus-component 是什么 就如同名字一样,plus 代表的是 Thin

基于 Laravel 开发 ThinkSNS+ 中前端的抉择(webpack/Vue)踩坑日记

在上一篇文章< ThinkSNS+基于Laravel master分支,从1到 0,再到0.1>,简单的介绍了 ThinkSNS+ ,这里分享在开发过程中,前端选择的心理活动. Laravel Mix的放弃 在 Laravel 中,前端工作流默认是由 laravel-mix 包驱动的,集成了 Vue.js.而作为核心开发之一,也负责前端这块的开发.其实,这是seven第一次写 Vue,之前都是用 React 做开发. 然后seven和另一个核心成员 Wayne 在楼道抽烟聊前端这事情,要不要用

Asp.Net Core Identity 骚断腿的究极魔改实体类

前言 默认的 Identity 实体类型在大多数时候已经基本够用,很多时候也只是稍微在 IdentityUser 类中增加一些自定义数据字段,比如头像.这次,我要向园友隆重介绍我魔改之后的 Identity 实体类,能支持一些特别风骚的操作.当然也完全兼容内置的 UserManager.RoleManager 和 SignInManager,毕竟也是从内置类型继承扩展出来的. 正文 魔改的实体类基于一组我自定义实体接口,这组接口我也实现了一组打包好的基础类型.因为 Identity 系列实体类型

PHP 基于laravel框架获取微博数据之一 模拟新浪微博登录

参考资料:http://www.csuldw.com/2016/11/10/2016-11-10-simulate-sina-login/http://blog.csdn.net/fly_leopard/article/details/51148904http://www.tuicool.com/articles/uIJzYff http://blog.csdn.net/u010029983/article/details/46364113等 模拟新浪微博登录是抓取新浪数据的基础,网上的参考资料

开源一个基于天天团购的团购app

可能大家都知道天天团购开源系统,一个做团购的开源项目很赞,前些日子做了基于天天团购系统做的团购客户端和移动端服务器!源代码放出,有了解的可以看看,希望收益! 先说服务器:app的服务器,基于天天团购的数据库重新暴漏的移动端的接口,基于http协议,客户端通过post传值,服务器拿到数据,解析执行,然后json_encode,返回!天天团购的php代码写的实在太多抽象,也许是自己php代码时间不长的原因,总之并没有基于他的系统来做,而是基于数据库来做,介绍下最基本的几个表,cenwor_syste