vdouchy / laravel-model-injector

0.2.0 2021-03-20 22:24 UTC

This package is auto-updated.

Last update: 2024-09-21 06:14:27 UTC


README

Laravel Model Injector

此包是一个简单的特性,用于帮助实现模型注入。

主要目标是替换配置中设置的类,如laravel-permission中的设置

// In: config/permission.php
return [
    'models' => [
        'permission' => Permission::class,
        'role' => Role::class,
    ],
    ...
];

// In: src/PermissionRegistrar.php
public function __construct(CacheManager $cacheManager)
{
    $this->permissionClass = config('permission.models.permission');
    $this->roleClass = config('permission.models.role');
    ...
}

而是执行以下操作:

// In: src/PermissionRegistrar.php

use HasModelInjection;

public function __construct(CacheManager $cacheManager)
{
    $this->permissionClass = $this->mClass(Permission::class);
    $this->roleClass = $this->mClass(Role::class);
    ...
}

要使用自己的类,任何开发者都可以这样做

$this->app->bind(Permission::class, MyCustomPermission::class);

当前API

mQuery(string $model): Builder:允许你针对此模型构建查询。

mNew(string $model, array $attributes = []): Model:允许你创建此模型的新实例。

mClass(string $model): string:返回与模型关联的类。

mTable(string $model): string:返回模型的表名。

mColumns(string $model): Collection:返回列的集合。