我可以在PHP中使用类似模板类的依赖注入吗?

时间:2016-05-16 03:26:40

标签: php laravel dependency-injection

我正在使用Laravel 5.2框架,并寻找一种非常简单的方法来安全地定义所有路由的授权。我们对请求授权使用依赖注入。

例如,控制器如下所示:

class MyController extends Controller
{
    public function getIndex(MyRequest $request)
    {
    }
}

我们扩展了FormRequest类,以便我们可以使用简单的字符串定义授权。

class MyRequest extends CustomRequest
{
    protected $permissions = 'perm-name';
}

如果您忘记指定$ permissions崩溃(在CustomRequest中发生),我们还定义了该行为。这样,我们就知道有请求的所有路由都有一个授权请求(这是一个关键的设计要求)。

这种方法的问题是我们需要为每个处理的权限提供一个请求类,即使唯一的区别是权限的名称。

如果这是一些神奇的"带有C ++类模板的PHP",我认为以下内容是有意义的,并减少了大量重复的代码:

class MyController extends Controller
{
    public function getIndex(TemplateRequest<'perm-name'> $request)
    {
    }
}

template <PERM_NAME> class TemplateRequest extends CustomRequest
{
    protected $permissions = PERM_NAME;
}

在这种情况下,只需要指定权限的所有请求只需要指定名称。

据我所知,这是不可能的。有人能证明我错了吗?

0 个答案:

没有答案