我试图在2个控制器,LoginController和RegisterController中实现我需要使用的2个函数,这些是我目前在1个控制器中声明的函数,但我现在需要它们在多个控制器中。我只是想知道最好的编程实践是什么?
在不违反任何编码规则的情况下,最好的方法是什么?
答案 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指出的那样,但它的可读性较差,我个人不喜欢它。
您可以将您的功能放入服务中并将其注入您的控制器。你可以做很多其他事情。 很多取决于您的架构。您的问题非常广泛,如果没有看到整个项目,通常无法正确回答。所以,请阅读理查德·马丁,这里有一匹小马,所以你不要在这里提出愚蠢的广泛问题。
答案 1 :(得分:0)
您可以在trait
中提取这两个功能,并在控制器中使用它们。