美文网首页
Laravel – API 的最佳命名约定

Laravel – API 的最佳命名约定

作者: 寂静的神经_8a34 | 来源:发表于2022-10-28 11:24 被阅读0次

    本文分享内容是大多数使用 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']);

    });

    相关文章

      网友评论

          本文标题:Laravel – API 的最佳命名约定

          本文链接:https://www.haomeiwen.com/subject/qkaxtdtx.html