Laravel spatie/laravel-permissions 命名约定

Sup*_*key 7 naming-conventions user-permissions laravel laravel-5 laravel-permission

在命名权限方面,我应该遵循一些命名准则吗?现在,我找到的所有内容都类似于“添加 Foo”、“编辑 Foo”、“删除 Foo”、“添加 FooBar”、“编辑 FooBar”、“删除 FooBar”等等。

请记住,没有分组(这真是遗憾),并且当您有所有上述权限的管理屏幕时 - 上述方法似乎相当草率。

您所有的“添加”都在一起,“编辑”都在一起,等等,例如:

 - Add Foo
 - Add FooBar
 - Add FooBarBez
 - Edit Foo
 - Edit FooBar
 - Edit FooBarBez
 - Delete Foo
 - Delete FooBar
 - Delete FooBarBez
Run Code Online (Sandbox Code Playgroud)

现在我倾向于类似于路线名称的东西,例如:

 - foo.add
 - foo.edit
 - foo.delete
 - foobar.add
 - foobar.edit
 - foobar.delete
 - foobarbez.add
 - foobarbez.edit
 - foobarbez.delete
Run Code Online (Sandbox Code Playgroud)

它在将所有“父”权限保持在一起方面更有组织性(即:所有 Foo 在一起,所有 FooBar 在一起,等等)。当然,如果有实际的指导方针,请告诉我,或者您有其他有价值的意见/建议吗?

//为了清晰起见编辑更新

具体来说,

- __Are__ any naming conventions? 
- Are there any preferences in terms of use of singular/plural when it comes to parents (eg: "User Create", "Users Create")
- If parents and action should be separated with a space, a dot, something else? (eg: "users.create"; "users create"; "users->create")
- What about nested resources (Parent.Child)? eg: "users.banking_details.create"
- Captilisation? Lowercase? Camel Case?
Run Code Online (Sandbox Code Playgroud)

如前所述,倾向于 Laravel 命名路线作为指导原则,因此将是:复数,小写,用点分隔,包括完整路径(父+子关系)。仅仅因为这就是我的倾向,并不意味着它是正确的,因此我要求社区提供意见:)

Sav*_*lon 5

有命名约定吗?

从来没听说过。正如您所指出的,这些示例使用“创建帖子”等,这是一种可怕的处理方式。

父母在使用单数/复数方面是否有任何偏好(例如:“用户创建”、“用户创建”)

这实际上取决于您的使用情况。这是针对不同情况使用单数和复数的示例。

返回单个用户的路由可以受 保护user.read,返回多个用户的路由可以受 保护users.read。我相信做到这一点的最佳方法是使用对您和/或您的团队有意义的方法。

父母和行动是否应该用空格、点或其他东西分开?(例如:“user.create”;“用户创建”;“用户->创建”)

点是首选方法,特别是当您要使用通配符时。

嵌套资源(Parent.Child)怎么样?例如:“users.banking_details.create”

完全可以使用,但是,在涉及通配符权限时要小心。通配符权限将授予使用所有子权限权限。

如果您授予某人权限usersusers.*给予相同的待遇,他们将能够执行此父项下的所有权限。

资本化?小写?骆驼香烟盒?

选择一致的风格并坚持下去。

我个人使用 Web 操作 (CRUD) 常用的命名约定。

task.create
task.read
task.update
task.delete
Run Code Online (Sandbox Code Playgroud)


Jos*_*ber 4

我将使用Laravel 在授权资源时使用的相同名称

  • view
  • create
  • update
  • delete

您可以在这里阅读更多相关内容:Laravel 中的 Gate and Authorization Improvements