hgacreative/hga-laravel-preset

基于HGA的Laravel应用的默认预设

dev-master 2019-10-07 16:09 UTC

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.phpRolesTableSeeder.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无法使用,便于访问)
  • 已更新 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.phpregister() 方法的 Passport::ignoreMigrations() 行,可以轻松重新打开这些迁移。