pi0nl/laravel-config-class-gate

允许通过配置文件在 Laravel 中加载类(或对象)

v0.1 2016-10-27 17:21 UTC

This package is auto-updated.

Last update: 2024-09-21 20:33:25 UTC


README

您可以通过配置文件(由配置键定义的类列表,例如自定义 Eloquent 模型)来提供您自己的类覆盖。这样,您可以使用预期的模型,同时添加扩展基本类的可能性。

默认情况下,尝试从 classes.php 配置文件中加载类。

示例

示例配置(配置文件夹中的 classes.php

<?php

return [
	"user" => App\\Models\\User::class
];

调用类的静态方法

$userGate = ClassGate::gate("user");
$users = $userGate->all() // will call User::all()

或快捷方式

// will call User::all()
$users = ClassGate::gate("user")->all();

创建实例

$userGate = ClassGate::gate("user");
$user = $userGate->newInstance();

或快捷方式

$user = ClassGate::instance("user");
$user = $userGate->theClass();

类字符串

$userGate = ClassGate::gate("user");

或快捷方式

$userClass = ClassGate::objectClass("user");

设置

自己的配置路径

您可以通过 ClassGate::setConfigPath("models.list") 提供自己的文件或 "array" 路径到配置,这将找到 models 文件和 list 数组条目中的类。

示例配置(配置文件夹中的 models.php

<?php

return [	
	"othersKeys" : "...",
	"list" => [
		"user" => App\\Models\\User::class
	]
];

待办事项

  • 带有默认配置文件的自己的提供者(可选)
  • 将方法调用转换为配置键并将创建正确的 ClassGate 实例的网关
  • 一个命令,该命令将创建支持模型的文档文件(将在 ClassGate 静态方法上支持类型提示)

ClassGate 建议

  • ClassGate::user() 将调用 ClassGate::gate("user")