Ответ 1
Я закончил использование пространств имен и каталогов в приложении/контроллерах:
/app
/controllers
/Api
/v1
/UserController.php
/v2
/UserController.php
И в файлах UserController.php я правильно установил пространство имен:
namespace Api\v1;
или
namespace Api\v2;
Затем в моих маршрутах я сделал что-то вроде этого:
Route::group(['prefix' => 'api/v1'], function () {
Route::get('user', 'Api\v1\[email protected]');
Route::get('user/{id}', 'Api\v1\[email protected]');
});
Route::group(['prefix' => 'api/v2'], function () {
Route::get('user', 'Api\v2\[email protected]');
Route::get('user/{id}', 'Api\v2\[email protected]');
});
Я не уверен, что это лучшее решение. Тем не менее, он позволил управлять версиями контроллеров таким образом, чтобы они не мешали друг другу. Вероятно, вы могли бы что-то проверить аналогично с моделями, если это необходимо.