Laravel – API 的最佳命名约定

本文分享内容是大多数使用 PHP 的科技公司遵循的基本命名约定。这种命名约定符合 Laravel [PHP] 编码标准和 PSR 规范。

最佳方式是结合 SOLID 原则,并记住尽可能遵循 KISS 原则

命名标准:

  • 对于类、接口 / 契约、特性:使用 大驼峰式「PascalCase」
  • 对于常量:使用「TITLE_CASE」
  • 对于函数 / 方法、类属性和变量:使用 小驼峰式「camelCase」
  • 对于数组索引 / 数据库字段名 / 模型可填充项 / 模型关系:使用 蛇形命名法「lower_snake_case」
  • 对于路由:使用 短横线「lower-kebab-case」

标准用法和示例:

一、对于类、接口 / 契约、特性(大驼峰式 PascalCase

// 类
class AuthController extends Controller
{
    // ...
}

// 接口 / 契约
interface LoginInterface 
{
   // ...
}

// 特性
trait Audit
{
   // ...
}

二、对于常量(TITLE_CASE

namespace App\Constants;

class AppConstant {
    const DEFAULT_PAGE = 1;
    const DEFAULT_PAGE_LIMIT = 10;
    const MAX_PAGE_LIMIT = 100;
    const ALPHANUMERIC_CHARACTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
    const NUMERIC_CHARACTERS = '0123456789';
    const ALPHA_CHARACTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
    const UPPERCASE_ALPHA_CHARACTERS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
    const LOWERCASE_ALPHA_CHARACTERS = 'abcdefghijklmnopqrstuvwxyz';
    const WEB_SITE_URL = 'https://www.02405.com';
}

三、对于函数 / 方法、类属性和变量(小驼峰式 camelCase

// 函数 / 方法
public function refreshToken() : JsonResponse {
    return $this->loginService->refreshToken();
}

//类属性
class AuthController extends Controller
{
    // these are the class properties
    protected $loginService;
    protected $logoutService;
}

//变量
public function __construct(LoginService $loginService, LogoutService $logoutService) {
    $this->loginService = $loginService;
    $this->logoutService = $logoutService;
}

四、对于数组索引 / 数据库字段名 / 模型可填充项 / 模型关系(蛇形命名法 lower_snake_case

//数组索引
foreach($age as $x => $x_value) {
  return $x_value;
}

//数据库字段名
public function up()
{
    Schema::create('audits', function (Blueprint $table) {
        $table->id();
        $table->string('user_type')->nullable();
        $table->unsignedBigInteger('user_id')->nullable();
        $table->index(['user_id', 'user_type']);
    });
}

//模型可填充项
protected $fillable = [
    'first_name',
    'last_name',
    'username',
    'email',
    'password',
];

注意:模型可填充项需要与数据库列匹配,这样才能正常工作,但任何连接到数据库的类(如 Eloquent 模型类),类属性 camelCase 也需要与数据库列 lower_snake_case 匹配。

五、对于路由(短横线 lower-kebab-case

Route::group(['middleware' => 'auth:api'], function() {
    Route::post('refresh-token', [AuthController::class, 'refreshToken']);
    Route::post('logout', [AuthController::class, 'logout']);
});
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Laravel是一种流行的PHP框架,用于构建Web应用程序。RBAC(Role-Based Access Control)是一种在应用程序中管理用户权限的方法。在Laravel中,可以使用API代码来实现RBAC。 实现RBAC的第一步是定义角色和权限。在Laravel中,可以使用数据库表来存储角色和权限的信息。可以创建一个名为roles的表来存储角色信息,包括角色名称和可访问的路由。还可以创建一个名为permissions的表来存储权限信息,包括权限名称和对应的路由。 接下来,需要在Laravel中定义路由,用来处理权限的验证和角色的分配。可以创建一个名为'check.permission'的中间件,用于验证用户的权限。在这个中间件中,可以查询数据库,获取当前用户的角色和可访问的路由,然后进行权限验证。如果用户没有权限访问该路由,则返回相应的错误信息。 当用户登录后,可以为用户分配一个或多个角色。在Laravel中,可以使用Session来存储用户信息。可以创建一个名为'assign.role'的路由,用于接收用户角色的分配请求。在这个路由中,可以将用户ID和角色ID存储到数据库中,并将用户的角色信息存储到Session中。 最后,可以创建一个名为'check.role'的中间件,用于验证用户的角色。在这个中间件中,可以查询数据库,获取当前用户的角色信息,并与当前访问的路由所需的角色进行比较。如果用户不具备所需的角色,则返回相应的错误信息。 通过以上步骤,可以实现基于角色和权限的访问控制。在Laravel中使用RBAC API代码,可以有效地管理和控制用户的权限,确保应用程序的安全性和完整性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值