在控制器抽象上添加方法 class
Adding methods on Controller abstract class
我正在尝试将 Laravel 4.2 应用程序迁移到 Laravel 5.0
之前在 Laravel 4.2 中你有一个 BaseController,你创建的其他控制器可以扩展它,这意味着如果我在其中添加一个方法。其他控制器将扩展 BaseController 可以使用它。
现在 Laravel 5.0,他们以某种方式改变了它而不是使用 class 他们使用了抽象 class
<?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;
}
现在我不熟悉抽象 class 是什么,所以我的主要音乐会是我是否仍然能够添加 functions()
以供其他控制器扩展使用?
举个控制器扩展 BaseController 的例子
$this->method_from_base_controller();
是的,您可以为抽象 classes 创建方法,这些方法将在继承自抽象 class 的 classes 中使用。
抽象classes 和普通classes 的主要区别是您不能创建抽象classes 的对象。您还可以创建要在子 classes 中实现的抽象 classes 方法。 Reference on abstract clasess on php.net
我正在尝试将 Laravel 4.2 应用程序迁移到 Laravel 5.0 之前在 Laravel 4.2 中你有一个 BaseController,你创建的其他控制器可以扩展它,这意味着如果我在其中添加一个方法。其他控制器将扩展 BaseController 可以使用它。
现在 Laravel 5.0,他们以某种方式改变了它而不是使用 class 他们使用了抽象 class
<?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;
}
现在我不熟悉抽象 class 是什么,所以我的主要音乐会是我是否仍然能够添加 functions()
以供其他控制器扩展使用?
举个控制器扩展 BaseController 的例子
$this->method_from_base_controller();
是的,您可以为抽象 classes 创建方法,这些方法将在继承自抽象 class 的 classes 中使用。
抽象classes 和普通classes 的主要区别是您不能创建抽象classes 的对象。您还可以创建要在子 classes 中实现的抽象 classes 方法。 Reference on abstract clasess on php.net