Я пытался перенести приложение 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
Других решений пока нет …