hgacreative / hga-laravel-preset
基于HGA的Laravel应用的默认预设
dev-master
2019-10-07 16:09 UTC
Requires
- php: >=7.1.3
- doctrine/dbal: *
- guzzlehttp/guzzle: *
- laravel/passport: *
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-08 03:38:17 UTC
README
本包旨在供HGA公司的员工和同事使用,但由于更广泛的社区也可能从这些预设中受益,因此已公开。以下是我们所做的调整的列表。
应用
模型
- 将
App\User模型移动到一个指定的Models文件夹中(App\Models),我们更喜欢这种结构,以便在大型项目中编写更干净的代码 - 更新
User模型,将“name”列拆分为“first name”和“last name” - 创建一个
Role模型,包括与User模型的关系
控制器
- 更新了Auth控制器,使其不重定向到
/home,因为该路由不再存在 - 更新了任何对
User模型的引用,使其为App\Models\User - 添加了一个
PageController.php来处理我们的默认索引路由,从而将闭包从web.php路由文件中移除
服务提供者
- 更新了Laravel Passport的默认cookie名称
- 添加了一个权限判断,以确定用户是否为管理员。默认情况下,在首次运行hga预设时,此选项未使用
- 添加了一个视图作曲服务提供者的模板。我们的建议是按照注释使用路径
App\Http\ViewComposers创建任何视图作曲
特质
- 我们默认提供了一些有用的特质,我们在项目中调用它们 - 自动化UUID,当它们在模型的ID上使用时,以及当保存时需要认证用户ID的模型的用户ID
- 还有一个实用的特质,用于确定用户是否具有特定的角色 - 这个命名是值得讨论的,因为未来可能有其他模型(除了
User)可能会被分配角色
配置
- 默认API驱动程序已从 'token' 更新为 'passport',以反映我们对Laravel Passport包的依赖
- 默认Mailgun端点已更新为指向欧盟服务器
- 已更新为仅使用加密会话和安全的会话cookie
- 这意味着任何开发工作都必须使用 Laravel Valet 在具有安全TLS证书的情况下提供网站。通过HTTP运行将引发419错误。
- 更新了任何对
User模型的引用,使其为App\Models\User
数据库
- 更新迁移以反映对
User模型的更改 - 为
Role模型和与我们的App\Models\User模型的多对多关系创建迁移 - 添加了
UsersTableSeeder.php和RolesTableSeeder.php以开始工作 - 暂时移除了
UserFactor.php
资源
- 默认JS和SASS文件已更新为HGA标准配置
- 覆盖了从Laravel来的默认布局结构,使其更符合我们的风格
- 更新了认证框架,以适应
User模型上的“first name”和“last name”选项,同时也更新了样式,因为我们不使用Bootstrap。- 这次更新意味着您无需运行
php artisan make:auth
- 这次更新意味着您无需运行
路由
api.php已更新为使用前缀 "v1",以便对路线进行版本控制,这是随着 API 随时间演变时软件的好做法。web.php已更新为包含 Laravel 的Auth::routes()以处理身份验证,同时删除了运行php artisan make:auth后创建的默认路由。
Webpack
- 默认情况下,已启用版本控制。
- VueJS 和 Axios 等库已提取到
vendor.js文件中。
其他
- 在
App\Http\Kernel.php中的$web数组中包含 Laravel Passport 中间件。 - 包含一个自定义验证器
strong_password,以确保注册时不能使用弱密码。 - 将附加参数追加到 .env 文件末尾,包括
- 一个 Google Analytics 参数,用于存储跟踪 ID,它将在
layouts/app.blade.php视图中预先填充区域。 - Mailgun 参数
- 邮件参数
- 会话安全cookie(如果Valet无法使用,便于访问)
- 一个 Google Analytics 参数,用于存储跟踪 ID,它将在
- 已更新 package.json 文件为
- 移除
- bootstrap
- lodash
- jquery
- popper.js
- 包含
- fontawesome-free
- es6-promise
- sass
- sass-loader
- vue-template-compiler
- 移除
API 访问
- 我们的预设包含 Laravel Passport,用于消耗通过 JavaScript(通常使用 VueJS & Axios 组合)创建的任何 API。
- 默认情况下,我们忽略 Passport 迁移,因为我们不需要我们应用程序中的此类功能,但了解它的存在是很好的。
- 通过取消注释或删除
AppServiceProvider.php中register()方法的Passport::ignoreMigrations()行,可以轻松重新打开这些迁移。
- 通过取消注释或删除