Laravel:不同控制器中的功能相同?

时间:2018-02-24 13:34:57

标签: php laravel

我试图在2个控制器,LoginController和RegisterController中实现我需要使用的2个函数,这些是我目前在1个控制器中声明的函数,但我现在需要它们在多个控制器中。我只是想知道最好的编程实践是什么?

在不违反任何编码规则的情况下,最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

一种方法是定义一个新的抽象级别......

class MyLittleBronyController extends Controller
{
    public function defineItAsYouWant()
    {
        // whatever
    }
}

class YourControllerOne extends MyLittleBronyController
{
    // You'll have method defineItAsYouWant() available here.
}

class YourControllerTwo extends MyLittleBronyController
{
    // You'll have method defineItAsYouWant() available here.
}

另一个是定义一个特征,正如Ruman指出的那样,但它的可读性较差,我个人不喜欢它。

您可以将您的功能放入服务中并将其注入您的控制器。你可以做很多其他事情。 很多取决于您的架构。您的问题非常广泛,如果没有看到整个项目,通常无法正确回答。所以,请阅读理查德·马丁,这里有一匹小马,所以你不要在这里提出愚蠢的广泛问题。

enter image description here

答案 1 :(得分:0)

您可以在trait中提取这两个功能,并在控制器中使用它们。