在Controller抽象类上添加方法

时间:2015-03-29 17:30:53

标签: php oop inheritance abstract-class laravel-5

我试图将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();

1 个答案:

答案 0 :(得分:1)

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

抽象类和普通类之间的主要区别在于您无法创建抽象类的对象。您还可以在抽象类中创建要在子类中实现的方法。 Reference on abstract clasess on php.net