2013-05-11 16 views

cevap

37

Ben app/denetleyicileri altında ad alanları ve dizinleri kullanarak sona erdi: Ben buna göre ad set

/app 
    /controllers 
    /Api 
     /v1 
     /UserController.php 
     /v2 
     /UserController.php 

Ve UserController.php dosyalarındaki

namespace Api\v1; 

veya

namespace Api\v2; 

Sonra güzergahlarımda şöyle bir şey yaptım:

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]'); 
}); 

Bu olumlu değil, bu en iyi çözüm. Bununla birlikte, kontrolörlerin, birbirleriyle etkileşime girmeyecek şekilde versiyonlandırılmasına izin vermiştir. Gerektiğinde modeller ile benzer bir şey doğrulayabilirsiniz.

+0

Bu yöntemi kullandığımda, tam yol kullanarak ad alanının dışındaki her sınıfa başvurmak zorunda kaldım (örnek: \ Input, \ App) –

+3

Ayrıca, bir 'use App;' deyimi de ekleyebilirsiniz. İsim alanları böyle çalışır. –

+1

@ iah.vector - sürümde sorun var, sadece v1 veya modele giden kontrolör, iş, talep ve ... vesrion klasörüne de gitmeli mi? –