vinlon / laravel-skeleton
The Laravel Framework Skeleton
Installs: 44
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 1
Forks: 1
Open Issues: 0
Type:project
Requires
- php: ^7.3|^8.0
- bensampo/laravel-enum: ^3.0
- fideloper/proxy: ^4.4
- fruitcake/laravel-cors: ^2.0
- guzzlehttp/guzzle: ^7.0.1
- laravel/framework: ^8.0
- laravel/tinker: ^2.5
- vinlon/laravel-sql-logger: ^0.2
Requires (Dev)
- barryvdh/laravel-ide-helper: ^2.8
- brainmaestro/composer-git-hooks: ^2.8
- facade/ignition: ^2.3.6
- fakerphp/faker: ^1.9.1
- friendsofphp/php-cs-fixer: ^2.17
- laravel/telescope: ^4.5
- mockery/mockery: ^1.3.1
- nunomaduro/collision: ^5.0
- phpunit/phpunit: ^9.0
README
更新日志
v0.2.0 升级larvel版本到8.x,默认引入调试工具telescope, 查看telescope使用文档 v0.1.9: 自定义 make:model 和 make:enum 命令使用的 stub 模板,适量减少重复性的工作
功能
在 laravel/laravel:7.x 的基础上增加以下功能
- 增加 DB_PREFIX 环境变量
- 引入 sql-logger, 并配置专用的 log channel
- 引入 ide-helper 并调整配置
- 配置 php-cs-fixer 和 composer-git-hooks
- 简化 .env.example(只保留必要的项)
- 增加 scratch.php 文件模板,用于快速启动 laravel 并执行一段代码
- 定义 BaseModel , 继承后自动实现日期序列化和fillable字段定义,并自定义 make:model 模板,默认继承BaseModel
- 集成 bensampo/laravel-enum,并自定义 make:enum 模板,默认继承 LocalizedEnum 接口,重写 toArray 方法
- composer 使用阿里云的镜像源
使用
使用composer create-project 创建项目
composer create-project --prefer-dist vinlon/laravel-skeleton {:project-name}
执行 php init
, 然后按提示进行操作,对项目进行初始化
日期格式
从 laravel 7 开始,调用 Eloquent Model 的 toArray方法,日期字段的输出格式为 2020-12-10T09:28:59.000000Z
可通过在 Model 中 use SerializeDateTrait;
class User extends Model { use SerializeDateTrait; }
或 extend BaseModel
class User extends BaseModel { }
将日期输出格式修改为 2020-12-10 09:28:59
IDE-Helper
目前只用到了 ide-helper-models, 使用 @mixin 方式,对 Model 类的影响最小,将变化集中到 _ide_helper_models.php 文件中
可使用如下命令生成 _ide_helper_models.php 文件
php artisan ide-helper:models -M
或者使用 composer 命令
composer ide-helper
代码格式化
手动执行
# 检查需要格式化的内容,但不执行 composer check-style # 格式化代码 composer fix-style
使用 git-hook 在提交代码时自动执行
在 composer.json 文件中,为 pre-commit 和 pre-push 事件定义了 git-hook.
- pre-commit: 在 commit 代码前会调用 fix-staged-php-files 脚本,该脚本会修复所有待提交文件的格式。
- pre-push: 在 push 代码前会检查所有 php 文件,如果有需要格式化的文件则 push 失败, 此时需要手动执行 composer fix-style, 然后 commit 格式化后的代码,再重新 push。
Enum的使用
常用功能
创建Enum类
Eloquent Model 属性转换
自定义 $model->toArray() 的行为
数据验证
定义 description 属性
常用静态方法
生成注解
# 使用 artisan 命令为 enum 类生成注解 php artisan enum:annotate # 使用 composer 自定义命令同时为 model 类和 enum 类生成注解 composer ide-helper