schenke-io/laravel-relation-manager

允许在 Laravel 中规划、记录和测试模型关系


README

Latest Version on Packagist GitHub Tests Action Status Total Downloads Coverage

开发具有许多模型的复杂 Laravel 应用程序可能很困难。 Laravel Relation Manager 通过将所有模型关系集中在一起来帮助您。它创建测试以确保它们工作,并记录它们以便于参考。这为您节省了时间,提高了代码质量,并使您的项目井然有序。

安装

您可以通过 composer 安装此包

composer require schenke-io/laravel-relation-manager

安装包的配置文件

php artisan relation-manager:install

使用方法

此包的核心功能由两个组件提供

  1. 配置文件config/relation-manager.php 文件允许您定义项目的目录、文件和命名空间。
  2. 自定义关系管理命令: 此命令扩展了 RelationManagerCommand 类,简化了配置过程。

在命令文件中

  • 定义模型及其关系
  • 决定是否要添加反向关系
  • 将用于模型 $casts 数组的 BackedEnum 类添加为特殊关系
  • 在模型关系定义之后
    • 编写测试文件
    • 运行测试文件(仅限测试文件)
    • 编写文本和图形文档
    • 输出表格
# app/Console/Commands/RelationWriteCommand

use SchenkeIo\LaravelRelationManager\Console\RelationManagerCommand;

class RelationWriteCommand extends RelationManagerCommand 
{
    
    public function handle(): void
    {       
        
        $this->relationManager->model('Country')
            ->hasOne('Capital', true)
            ->hasMany('Region', true)
            ->castEnum('Size');
            
        $this->relationManager->model('Region')
            ->hasMany('City', true);
            
                        
        // repeat this for any model    

        // finally 
        $this->relationManager->writeTest(false)
          ->writeMarkdown()
          ->runTest()
          ->showModelTable();
                   
        
    }    
}

默认情况下,该命令通过 php artisan relation-manager:run 调用。

handle() 中可以使用以下方法

测试

composer test

更新日志

请参阅 更新日志 了解最近更改的详细信息。

许可协议

MIT 许可协议 (MIT)。有关更多信息,请参阅 许可文件