Я использую Laravel 5 и создаю веб-сервис для приложения, которое требует API-версий.Это структура папок, которую я обнаружил на разных веб-ресурсах
/app
/controllers
/Api
/v1
/UserController.php
/v2
/UserController.php
Проблема в том, что в UserController
есть много функций, которые, скорее всего, не изменятся между версиями, или к каждомуверсия.Например, есть функция logout
, которая отправляет сообщение пользователю после выхода из системы.Если я копирую эту функцию в каждом UserController
, то любое незначительное изменение, скажем, изменение сообщения или что-то подобное, заставляет меня менять каждый UserController
в разных версиях.В результате я решил создать BaseUserController
и вставить туда общие функции, и каждый Usercontroller
должен наследовать это.Я имею в виду это
/app
/controllers
/Api
/BaseUserController.php extends Controller.php
/v1
/UserController.php extends BaseUserController.php
/v2
/UserController.php extends BaseUserController.php
, поэтому, если какой-либо версии необходимо реализовать свою собственную logout
, просто она переопределяет свою родительскую функцию или для любого глобального изменения я изменяю функцию в родительском.
Я хотел бы спросить вас, это хорошая стратегия для реализации API-версий?а в чем проблема с этим?
Заранее спасибо