[开源] LaravelPlus-Laravel二次开发

大量很棒的Laravel资源集合:awesome-laravel

Laravel生态系统中很棒的书签,包,教程,视频和其他很酷资源的列表。 Essentials Documentation API Reference Laracasts Laravel News Laravel 5 Re...

目的

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

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

介绍

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

 

版本基础

当前版本基于

PHPLaravel (影响不大,降低版本理论可以)
>=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)
  • 增加默认加载软件包

    • production 生产环境
      • respect/validation 验证包
      • react/react ReactPHP 多进程异步扩展(可以移除)
      • 引入 ElasticSearch For scout
        • laravel/scout
        • tamayo/laravel-scout-elastic
          • elastic/elasticsearch-php 原生 ElasticSearch (可选)
      • rabbitMQ 扩展
        • vladimir-yuldashev/laravel-queue-rabbitmq - php-amqplib/php-amqplib 原生(可选)
      • rap2hpoutre/laravel-log-viewer 日志展示 [访问 host/logs]
      • predis/predis Redis 插件(建议使用 php-redis 扩展)
      • php-tool/laravel-plus-make Laravel Plus Make 自动生成 framework 代码插件软件包(可单独引用)
      • guzzlehttp/guzzle Http 请求包
      • overtrue/laravel-lang 多语言本地化 i18n
    • develop 开发环境
      • reliese/laravel 模型生成工具
        $ php artisan code:models --table=tb_name
      • [doctrine/dbal]
      • barryvdh/laravel-debugbar debuger 工具
      • barryvdh/laravel-ide-helper ide 辅助工具
        $ artisan ide-helper:generate
      • overtrue/laravel-query-logger 日志工具
      • nunomaduro/phpinsights 统计检测项目问题(类似 PHPCS, 需求版本 php 7.2.* ,请手动安装 composer require nunomaduro/phpinsights --dev)
      • infyomlabs/laravel-generator Code 代码生成工具(可选)
  • 增加前端资源

    • element-ui 样式框架(可选方案 iview)
  • 增加默认图片存储目录(storage/app/public/images)

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

待办

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

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

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

完善 wiki

Laravel不权威导航

Laravel-sitesLaravel不权威导航Laravel 文档Laravel 官方文档 {英文}Laravel 中文文档 {laravel-china版}Laravel 中文文档 {golaravel版}Laravel 教程Laracasts {Jeff的教程很赞!...

laravel 项目参考 ?

...2> ------------------- 更新于: 2014 . 09. 02 ------------------ Laravel China is ready Laravel 中文文档 , 欢迎发起 issue 提交纰漏 和建议 --> Laravel China · GitHub--

Laravel框架中Autoloader模块的代码分析

本篇文章给大家分享的内容是关于Laravel框架中Autoloader模块的代码分析,有一定的参考价值,希望可以帮助到有需要的朋友。首先是中文注释:<?php namespace Laravel; class Autoloader { /** * 类名到文件名得映射 ...

PHP程序员常用的8款Laravel软件包 laravel 5 教程 laravel怎么读 laravel开发教

  Laravel是一套简洁、优雅的基于PHP 语法,支持IoC等设计模式的快速开发框架。在Laravel框架下进行php相关应用开发,可以让开发人员从面条一样杂乱的代码中解脱出来,帮助开发者构建一个完美的网络A...

Laravel 粗略笔记 laravel 性能 laravel下载 laravel homestead

用了断断续续一周的时间大致了解了Laravel的运行机制,可能是PHP基础知识还是不够牢固,对Laravel源码的还是看不大明白.首先是Laravel文档写的实在简洁了,大部分的内容只能自己去摸索 `sever.php` 这个文件应该是入口文件。...

laravel5.5和laravel-admin的安装步骤介绍

本篇文章给大家带来的内容是关于laravel5.5和laravel-admin的安装步骤介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。配置laravel-admin官方的教程还是没问题的,但也遇到了一点...

Laravel 6.0 LTS 发布,内附更新细节

Laravel 团队已于2019.9.4日宣布 Laravel 6.0 版本正式发布,该版本的发布标志着 laravel 框架开始使用语义化版本,此外,该版本还包含了对 Laravel Vapor 的支持、优化了授权响应、任务中间件、懒集合、子查询优化以及很多其...

Laravel自学第一课:laravel下载与安装,laravel第一课_PHP教程

Laravel自学第一课:laravel下载与安装,laravel第一课本地安装laravel,php环境要配置好,推荐xmapp一键搭建。 1、程序包直接从官方下载,官方开源地址:https://github.com/laravel/laravel(当然也可从此网站:http://www.gola

国内有什么论坛是关于laravel的?

如题 回复内容: PHPhub - PHP & Laravel的中文社区 一个干净, 纯粹的, 积极向上的 PHP 中文社区, 欢迎加入. 网站是使用 Laravel4 编写的, 代码基于 MIT Licence 开源 summerblue/phphub · GitHub , 欢迎大家贡献代码.

Laravel 项目中使用 Glup 之 Laravel-Elixir laravel5.1视频教程 laravel 学院 laravel sessio