Už vieme ako definovať route a príslušný controller. Je ideálny čas na to, podchytiť best practice v routovaní a spracovaní požiadavok.
Resource (prostriedok, zdroj) je v našom prípade niečo, nad čím operujeme. Teda konkrétny model. Pri návrhu aplikácie sa typicky zamýšľame nad tým, aké akcie budeme nad daným modelom vykonávať (čo s ním bude možné v rámci aplikácie robiť). Ak je controller resourceful, znamená to, že obsahuje všetky nižšie spomenuté akcie.
Protokol HTTP obsahuje niekoľko metód, ako odosielať požiadavku. Ide o slovesá, ktoré (veľmi trefne) popisujú, akú akciu ideme nad resourcom vykonať. Ide o týchto 5 metód/akcií: GET
, POST
, PUT
, PATCH
, DELETE
.
GET získanie resourcu (R) zo servera
POST odoslanie R na server
PUT zmena R (ako celok, doslova zámena za iný, zmazanie starého a nahranie nového)
PATCH zmena R (jeho časti)
DELETE zmazanie R
Ak by sme chceli nad modelom vykonávať všetky akcie, môžeme ich definovať explicitne takto:
Route::get('/articles', 'ArticleController@index');
Route::post('/articles', 'ArticleController@store');
Route::put('/articles/{article}', 'ArticleController@update');
Route::patch('/articles/{article}', 'ArticleController@update');
Route::delete('/article/{article}', 'ArticleController@destroy');
Laravel však ponúka omnoho jednoduchšiu cestu s rovnakým výsledkom:
Route::resource('articles', 'ArticleController');
Ak chcete využiť len niektoré akcie, metódami only
a except
môžete definíciu obmedziť
// only
Route::resource('photos', 'PhotoController')->only([
'index', 'show'
]);
// except
Route::resource('articles', 'ArticleController')->except([
'create', 'store', 'update', 'destroy'
]);
Úplne najväčší kanón je definícia viacerých resource-ov naraz:
Route::resources([
'articles' => 'ArticleController',
'comments' => 'CommentController'
]);
V controlleri ArticleController
zas nemusíte pracne definovať metódy pre jednotlivé akcie. Ak použijete pri vytváraní controlleru prepínač -r
php artisan make:controller ArticleController -r
vygenerovaný controller bude tzv. resourceful – bude obsahovať všetky metódy, ktoré potrebujete. Stačí len implementovať.
Ide o dôležitý štandard hlavne v prípade, že aplikácia mení majiteľa, mení sa tím, alebo prichádza nová posila. Pri použití štandardných URI a akcií controllera je veľmi jednoduche s aplikáciou (v tomto ohľade) ďalej pracovať a nie je potrebné skúmať aké názvoslovie zvolil kolega pred vami.
Ak teda chcete priniesť aplikáciou jej majiteľovi čo najvyššiu hodnotu, je aj budúca udržateľnosť aplikácie jedným z bodov, na ktorý by ste mali pri návrhu myslieť.
To možeš ľahko zmeniť. Registrácia je zdarma a ako registrovaný člen získaš množstvo výhod. Prečítaj si prečo by si mal byť členom.
Prihlásiť sa Zaregistrovať