在Controller抽象类上添加方法


Adding methods on Controller abstract class

我试图将Laravel 4.2应用程序迁移到Laravel 5.0之前在Laravel 4.2中,你有一个BaseController,你创建的其他控制器可以扩展它,这意味着如果我在里面添加一个方法。其他控制器将扩展BaseController,可以使用它。

现在在Laravel 5.0上,他们以某种方式更改了它,而不是使用类——他们使用了抽象类

<?php namespace App'Http'Controllers;
use Illuminate'Foundation'Bus'DispatchesCommands;
use Illuminate'Routing'Controller as BaseController;
use Illuminate'Foundation'Validation'ValidatesRequests;
abstract class Controller extends BaseController {
    use DispatchesCommands, ValidatesRequests;
}

现在我不熟悉抽象类是什么,所以我的主要问题是,我还能添加functions()吗?其他控制器可以使用它来扩展它吗?

因此,作为控制器中扩展BaseController 的一个例子

$this->method_from_base_controller();

是的,您可以为抽象类创建将在从抽象类继承的类中使用的方法。

抽象类和普通类之间的主要区别在于,不能创建抽象类的对象。您还可以在抽象类中创建要在子类中实现的方法。php.net 上抽象类的参考