jcergolj / laravellte
Laravel 框架。
Requires
- php: ^7.3.0
- fideloper/proxy: ^4.2
- fruitcake/laravel-cors: ^1.0
- guzzlehttp/guzzle: ^7.0.1
- intervention/image: ^2.5
- laravel/framework: ^8.0.0
- laravel/ui: ^2.0
- livewire/livewire: ^2.0
- predis/predis: ^1.1
Requires (Dev)
- barryvdh/laravel-debugbar: ^3.5.1
- brainmaestro/composer-git-hooks: ^2.8
- brianium/paratest: ^5.0
- facade/ignition: ^2.3.6
- fzaninotto/faker: ^1.9.1
- jasonmccreary/laravel-test-assertions: ^1.0
- johnkary/phpunit-speedtrap: ^3.2
- laravel/tinker: ^2.0
- matt-allan/laravel-code-style: ^0.6.0
- mockery/mockery: ^1.3.1
- nunomaduro/collision: ^5.0
- nunomaduro/phpinsights: ^1.14
- phpunit/phpunit: ^9.0
- dev-master
- v3.x-dev
- v2.0
- v1.0
- 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/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/async-2.6.4
- dev-dependabot/npm_and_yarn/follow-redirects-1.14.8
- dev-feature/registration
- dev-feature/simple-role-based-auth
This package is auto-updated.
Last update: 2024-08-30 01:11:58 UTC
README
简介
这是一个基于 Laravel 8.0 的 AdminLTE 3.0 主题、Alpinejs 2.0、Livewire 2.0 的 AdminLTE 3.0 主题的模板,支持测试和可选功能分支。
您可以查看我正在积极工作的这个仓库 Laravel Castra。同样的想法,不同的工具(Hotwire Turbo)。
内容
完全控制代码
有时候,软件包太大或太繁琐,难以使用。有时,软件包没有你需要的临界功能,你必须进行一些修补才能解决这个问题。
你所缺少的是对代码的控制,现在你拥有了!不喜欢添加新用户的方式。没问题。你可以随意修改代码。不再需要分支软件包并篡改它们的代码。 想法是创建标准功能的分支,使其他人可以将它们合并到他们的主分支中。
摘要
- Laravel 8.0, Alpinejs, Livewire 2.0, AdminLTE 主题 3.0 ✔️
- 登录 ✔️
- 忘记密码 ✔️
- 用户 CRUD ✔️
- 为新用户提供带有设置新密码链接的欢迎邮件 ✔️
- 角色 CRUD(基本认证系统)✔️
- 可以将基于路由的权限分配给角色✔️
- 带有更改密码、电子邮件和用户图像选项的个人资料✔️
- 为新用户确认电子邮件以确认其电子邮件地址✔️
- 文件生成✔️
- 包含 CI(GitHub Actions)✔️
- 包含超过 200 个测试✔️
功能分支
以下是支持的功能分支列表。通过将它们合并到主分支中,您可以解锁新功能。
安装
在安装 Laravel 之后,您应该运行以下命令
git clone https://github.com/jcergolj/laravellte.git
composer install
cp .env.example .env
php artisan key:generate
npm install
npm run dev
composer cghooks update
php artisan migrate:fresh --seed
关爱代码
让我们面对现实。有时候我们很粗心,没有好好照顾代码。我添加了一些有用的软件包(这不是很讽刺吗)来尽可能减轻开发者的负担。
- 在提交之前,代码会自动使用 matt-allan/laravel-code-style package 根据Laravel标准进行格式化。
- 接下来 nunomaduro/phpinsights 软件包检查代码,并在代码不在最佳状态时发出警报。
"php artisan insights --no-interaction --min-quality=90 --min-complexity=85 --min-architecture=90 --min-style=95"
- 测试仍然很慢吗? johnkary/phpunit-speedtrap 软件包为您找到慢速测试。
- 最后 brainmaestro/composer-git-hooks 软件包被用来自动完成所有工作。 查看方式
文件生成
对于 CRUD 操作,您可能需要考虑使用内置的文件生成命令。它生成用于索引、创建、显示、编辑和删除操作的文件,如下所示
php artisan make:ltd-component bla --index --create --show --edit --delete
您可以选择省略任何选项。如果您愿意,可以像您喜欢的那样更新 stubs 文件。模板文件中有注释,用作您修改代码的提醒。您可以通过输入以下内容找到它们:index-review、create-review、show-review、edit-review、delete-review。Factory 和 Model 模板不包括在这个命令中。
授权
Laravellte 使用基于角色-权限的授权系统。只有具有管理员角色的用户才能添加新角色并将其分配权限。
关于权限
对于新资源,权限通过 PermissionsTableSeeder 添加。按照惯例,主要权限类型是 index、create、edit、show 和 delete,资源名称使用复数前缀。例如:users.index。话虽如此,您可以添加自己的权限。但是,您必须检查/修改代码。
根据惯例,路由名称必须是以下类型之一:index、create、edit、show 和 delete。示例。
对于 Livewire 组件,命名约定如下:您必须使用以下类型之一,后跟资源名称,然后是 Component。例如:IndexUserComponent。所有 Livewire 组件都必须使用 HasLivewireAuth 特性。这里是 实现。
索引页面的所有者限制
当向角色添加权限时,有一个额外的字段称为 owner_restricted。如果索引页面的 owner_restricted 字段为 true,则具有该权限的用户只能看到自己的资源。然而,为了使此功能正常工作,资源必须具有 owner_id 字段 并在 boot 方法 中附加 VisibleTo 全局。
显示、编辑、删除操作的所有者限制
如果 owner_restricted 字段对 show、edit 和 delete 类型为 true,则用户只能修改他拥有的资源。
创建的所有者限制
对于创建类型,忽略 owner_restricted。
对于路由网关
其核心是处理授权的 ForRouteGate,值得称赞的是 Authorisation Middleware。
授权食谱
- 将权限应用于角色。
- 确保将 Authorisation 中间件应用于资源的路由 示例
- 确保路由和权限命名 resources.index(根据约定)示例
- 确保将 VisibleTo 全局范围应用于模型 示例
- 确保将 HasLivewireAuth 特性应用于所有 Livewire 组件 示例
警告
对于管理员角色权限限制不适用。
许可
在 MIT 许可证 下许可