内容简介:为了减少重复 CURD 和新项目的配置麻烦等问题,(<del>就是为了骗星星</del>:当前版本基于
目的
为了减少重复 CURD 和新项目的配置麻烦等问题,(<del>就是为了骗星星</del>: 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:
- 兼容 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:
-
.env 配置 DYNAMIC_IS_STRICT 控制热配是否严格模式(默认 false 关闭)
- 严格模式下不会继承 production/develop,完全采用当前环境配置
- 默认在继承基础上有重复属性,会覆盖继承项
- 继承基础特有属性会被携带至当前配置
- 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 代码生成工具(可选)
-
reliese/laravel
模型生成工具
-
production 生产环境
-
增加前端资源
- element-ui 样式框架(可选方案 iview)
-
增加默认图片存储目录(storage/app/public/images)
-
扩展结构分层 想法来源
-
系统分层
- Controllers 控制器层
-
主要分层
- Services 业务服务层
- Repositories Repository 数据仓库层
- Models 模型层(无需创建,默认通过模型工具创建)
-
扩展分层
- Presenters 固定业务主持中控层
- Transformers 转化层/筛选层(筛选后在选择输出)
- Formatters 格式化层(对于输出数据进行格式化,服务于 view 层),便于前端模版渲染与展示
-
系统分层
-
增加 Redis 多语言配置读取
待办
完善资源功能:Controller 中模型数据处理和数据返回
增加 Redis 多语言数据库,和迁移
增加动态视图模式和静态视图模式(渲染后生成 view)切换
完善 wiki
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- 方便的 Kubernetes API 参考文档
- 使用drawio进行画图真的很方便
- WebStorm 2019.2 发布,更智能方便
- Prometheus 监控 MongoDB 真的太方便了
- HTTPS 不方便的地方!你知道多少?。。。
- 云原生时代如何方便的进行本地调试
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
垃圾回收算法手册:自动内存管理的艺术
Richard Jones、Eliot Moss、Antony Hosking / 王雅光、薛迪 / 机械工业出版社 / 2016-3 / 139
在自动内存管理领域,Richard Jones于1996年出版的《Garbage Collection:Algorithms for Automatic Dynamic Memory Management》可谓是一部里程碑式的作品。接近20年过去了,垃圾回收技术得到了非常大的发展,因此有必要将该领域当前最先进的技术呈现给读者。本书汇集了自动内存管理研究者和开发者们在过去50年间的丰富经验,在本书中......一起来看看 《垃圾回收算法手册:自动内存管理的艺术》 这本书的介绍吧!