mennovanhout/laravel-model-constants

此包创建列名称常量,可以使用这些常量代替字符串,以减少输入错误并提高使用IDE的编码效率。

v0.9.5 2024-02-04 09:35 UTC

This package is auto-updated.

Last update: 2024-09-04 10:51:21 UTC


README

此包将为您的模型生成常量文件,以减少输入错误和调试以查找可用属性的需要。

优势

  1. 此包安装后即可使用,无需维护或学习命令。
  2. 此包监听Laravel迁移结束事件(文件将自动更新/生成)。
  3. 当删除列时,您将在IDE中获得错误。
  4. 更少的输入错误。
  5. 这些常量在整个代码库中广泛可用,而不是需要键入字符串。
  6. 此包考虑到所有设计模式。无论您使用领域驱动设计还是Laravel的默认方法。

如何安装

composer require mennovanhout/laravel-model-constants

如何使用

此包通过Laravel的迁移系统挂钩,并在每次迁移或一系列迁移后生成文件。

您可以通过以下方式手动运行: artisan model:constants

如果您想删除此包生成的文件,可以使用以下方式: artisan model:constants-clean

示例:生成的常量文件

<?php

namespace Domain\Authentication\Models;

use MennoVanHout\LaravelModelConstants\Types\ModelAttributes;

class UserAttributes extends ModelAttributes
{
	 const ID = 'id';
	 const NAME = 'name';
	 const EMAIL = 'email';
	 const EMAIL_VERIFIED_AT = 'email_verified_at';
	 const PASSWORD = 'password';
	 const REMEMBER_TOKEN = 'remember_token';
	 const CREATED_AT = 'created_at';
	 const UPDATED_AT = 'updated_at';
}

示例模型

<?php

namespace Domain\Authentication\Models;

class User extends Authenticatable
{
    use HasApiTokens, HasFactory, Notifiable;

    protected $fillable = [
        UserAttributes::NAME,
        UserAttributes::EMAIL,
        UserAttributes::PASSWORD,
    ];

    protected $hidden = [
        UserAttributes::PASSWORD,
        UserAttributes::REMEMBER_TOKEN,
    ];

    protected $casts = [
        UserAttributes::EMAIL_VERIFIED_AT => 'datetime',
    ];
}

待办事项

  • 添加配置文件。
  • 能够将生成的常量文件放置在另一个目录中。
  • 添加一个选项,以便在常量中生成关系。
  • 添加一个选项,以便在常量中生成自定义属性。