elapse-annals / laravel-plus
The Laravel Framework.
Installs: 13
Dependents: 0
Suggesters: 0
Security: 0
Stars: 50
Watchers: 3
Forks: 9
Open Issues: 22
Type:project
Requires
- php: ^7.2.5
- ext-json: *
- ext-pdo: *
- caouecs/laravel-lang: ~4.0
- fideloper/proxy: ^4.2
- fruitcake/laravel-cors: ^1.0
- guzzlehttp/guzzle: ^6.3
- laravel/framework: ^7.0
- laravel/tinker: ^2.0
- laravel/ui: ~2.0
- maatwebsite/excel: ^3.1.17
- overtrue/laravel-lang: ^3.0.18
- reliese/laravel: ^0.0.14
Requires (Dev)
- barryvdh/laravel-debugbar: ^3.2
- barryvdh/laravel-ide-helper: ^2.6
- facade/ignition: ^2.0
- fzaninotto/faker: ^1.9.1
- laravel/dusk: ^5.11
- mockery/mockery: ^1.3.1
- nunomaduro/collision: ^4.1
- overtrue/laravel-query-logger: ^1.0.8
- phpunit/phpunit: ^8.5
- roave/security-advisories: dev-master
- dev-master
- 7.0
- v6.1.0
- v6.0.0
- 5.8.0.x-dev
- v5.8.0
- v1.0.0
- v0.1.0
- dev-dependabot/npm_and_yarn/minimist-1.2.8
- dev-dependabot/composer/symfony/http-kernel-5.4.20
- dev-dependabot/npm_and_yarn/json5-1.0.2
- dev-dependabot/npm_and_yarn/express-4.18.2
- dev-dependabot/npm_and_yarn/qs-and-express-6.11.0
- dev-dependabot/npm_and_yarn/decode-uri-component-0.2.2
- dev-dependabot/npm_and_yarn/loader-utils-1.4.2
- dev-dependabot/npm_and_yarn/terser-4.8.1
- dev-dependabot/composer/guzzlehttp/guzzle-7.4.5
- dev-dependabot/npm_and_yarn/eventsource-1.1.1
- dev-dependabot/npm_and_yarn/async-2.6.4
- dev-dependabot/composer/doctrine/dbal-3.3.4
- dev-dependabot/composer/league/flysystem-1.1.9
- dev-dependabot/npm_and_yarn/nanoid-3.3.2
- dev-dependabot/npm_and_yarn/url-parse-1.5.10
- dev-dependabot/composer/laravel/fortify-1.11.1
- dev-dependabot/npm_and_yarn/ansi-regex-5.0.1
- dev-dependabot/npm_and_yarn/path-parse-1.0.7
- dev-dependabot/npm_and_yarn/postcss-8.2.13
- dev-dependabot/npm_and_yarn/axios-0.21.2
- dev-dependabot/npm_and_yarn/follow-redirects-1.14.8
- dev-dependabot/composer/laravel/framework-8.40.0
- dev-develop
This package is auto-updated.
Last update: 2025-02-19 06:14:21 UTC
README
English | 中文
介绍
LaravelPlus 基于 Laravel 增加部分软件包初始安装和进行业务使用功能改动,来创建一个开箱即用的应用.
目的
- 增加基于模型 CURD 生成工具
- 自动 Laravel 与 Vue/Element UI 基于基础模型的代码生成器。
- 环境配置切换
运行环境要求
- PHP
- composer
- MySQL | PgSQL
项目使用
0.配置镜像
配置 composer aliyun 镜像
$ composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
1.下载项目
$ git clone https://github.com/ElapseAnnals/laravel-plus.git
2.创建新项目
// A.在当前目录运行自动复制脚本 ( 推荐) // YourProject 需要创建的项目名 $ php LaravelPlus/create YourProject
3.新项目初始化
$ cd YourProject // 进入 YourProject 项目中 $ composer update $ php artisan make:framework init --init
4。本地服务开启
php artisan serve
Tips:
更新 YourProject 项目(插件有改动时在上级目录中使用)
php LaravelPlus/update YourProject
功能使用说明
创建分层脚本和资源映射:想法来源
framework 脚本创建内容:
- Controller, Service, Repository 等文件和对应关联关系
- Route 资源路由增加
- Controller 中资源类型代码和模型数据处理
模型生成
php artisan code:models --table=table_name // 指定表 php artisan code:models --connection=mysql // 指定数据库连接 php artisan code:models --connection=mysql --table=table_name // 指定连接和指定表
使用 framework 功能创建 CURL(Tmpls 是对应模型复数名称)
$ php artisan make:framework Tmpls // 创建分层结构(推荐)
$ php artisan make:framework Tmpls --D // 删除分层结构
$ php artisan make:framework Tmpls --F // 强制生成分层结构
Tips:
- 注意文件被其它服务占用问题,可进行重启尝试 (Failed to clear cache. Make sure you have the appropriate permissions.)
- 使用导出需要在 web.php 中 export 注册路由
热切换配置使用(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 // 监视编译(开发时启用)
模板使用
使用 mixin 注入 vue 组件
<script> var js_data = @json($js_data); var mixinSlot = { data: {}, methods: {} } </script> <script type="text/javascript" src="{{asset('js/app.js')}}"></script>
路由 web/api 使用区别和场景
web 经过权限,csrf 等中间件和 Session api token 维护使用 auth:api 中间件或 barryvdh/laravel-cors 若非单纯 api ,建议使用 web
改动内容
- 设置日志打印默认按天执行(.env::LOG_CHANNEL)
- 增加默认加载软件包
-
production 生产环境
- maatwebsite/excel 增加 excel 组件
-
develop 开发环境
- reliese/laravel
- barryvdh/laravel-debugbar debuger 工具
- barryvdh/laravel-ide-helper ide 辅助工具
php artisan ide-helper:generate
-
-推荐扩展
-
php-ext-xlswriter excel 处理扩展,性能强劲(30万行 4 s)
-
推荐软件包列表
- PHP_XLSXWriter 简单强力的 excel 扩展
- nunomaduro/phpinsights 统计检测项目问题(类似 PHPCS)
-
overtrue/laravel-lang 多语言本地化 i18n
-
[laravel/socialite] () 社会化登陆包【注意配置代理或更改底层路由请求】 - 替代方案 overtrue/socialite 包含国内社会化登陆
-
rap2hpoutre/laravel-log-viewer 日志展示 [访问 host/logs]
-
react/react ReactPHP 多进程异步扩展(手动,引入后 Process 才可使用) - react/child-process - react/event-loop - 引入 ElasticSearch For scout - laravel/scout (手动)
-
elastic/elasticsearch-php 原生 ElasticSearch (手动)
- rabbitMQ 扩展 - vladimir-yuldashev/laravel-queue-rabbitmq
- php-amqplib/php-amqplib 原生(手动)
-
predis/predis Redis 插件(建议使用 php-redis 扩展)
-
php-tool/laravel-plus-make Laravel Plus Make 自动生成 framework 代码插件软件包( 手动)
-
darkaonline/l5-swagger swagger 文档生成
-
mpociot/laravel-apidoc-generator api doc 文档生成
-
nunomaduro/larastan 增加 laravel 静态检测工具
-
guzzlehttp/guzzle Http 请求包
-
ClassPreloader/ClassPreloader vendor preload 生成器
-beyondcode/laravel-self-diagnosis laravel project diagnosisl -beyondcode/laravel-dump-server that collects all your dump call outputs -tightenco/jigsaw 主动静态化 -spatie/laravel-responsecache 静态化 -silber/page-cache 静态化 -barryvdh/laravel-httpcache 静态化
-
-
增加前端资源
- element-ui 样式框架
-
增加默认图片存储目录(storage/app/public/images)
-
扩展结构分层 想法来源
- 系统分层
- Controllers 控制器层
- 主要分层
- Services 业务服务层(处理业务逻辑)
- Repositories Repository 数据仓库层(处理数据库逻辑)
- Models 模型层(无需创建,默认通过模型工具创建)
- 扩展分层
- Presenters 固定业务主持中控层(处理视图的逻辑:参考,更适用于 blade)
- 减少在 blade 用 @if...@else...@endif
- Transformers 转化层/筛选层(筛选后在选择输出;控制展示字段数)
- Formatters 格式化层(包装)(对于输出数据进行格式化,服务于 view 层),便于前端模版展示;翻译,编码转义;
- Presenters 固定业务主持中控层(处理视图的逻辑:参考,更适用于 blade)
- 系统分层
-
设置默认 Schema index 长度
使用 Schema 注意 MySQL 版本低于 5.7.7 需设置默认 index 长度小于 191
Schema::defaultStringLength(191);