[开源骗星] LaravelPlus - 基于 Laravel 魔改,为方便实际业务使用 - 开发中 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ben1024
V2EX    PHP

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

  •  
  •   ben1024 2019 年 6 月 9 日 3595 次点击
    这是一个创建于 2511 天前的主题,其中的信息可能已经有所发展或是发生改变。

    目的

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

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

    介绍

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

    版本基础

    当前稳定版本:

    当前版本基于

    | PHP >=7.1.3 | Laravel >=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

    4 条回复    2019-06-10 14:27:04 +08:00
    KasuganoSoras
        1
    KasuganoSoras  
       2019 年 6 月 10 日
    已 Star,也许以后用的到
    sanqian
        2
    sanqian  
       2019 年 6 月 10 日
    已 Star,也许以后用的到
    zxcslove
        3
    zxcslove  
       2019 年 6 月 10 日
    切,不就是星么,拿去
    ben1024
        4
    ben1024  
    OP
       2019 年 6 月 10 日
    @zxcslove
    贫者不食嗟来之食。。。
    真香 [狗头]
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1217 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 50ms UTC 17:50 PVG 01:50 LAX 10:50 JFK 13:50
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86