Контроллерҳо дар MVC дар PHP
Аввалин чизе, ки бо он шинос мешавем - ин контроллерҳо мебошанд. Контроллерҳо дархостҳои корбарро коркард мекунанд, мефаҳманд, ки корбар чӣ аз сомона дархост кардааст, маълумоти мувофиқро аз модел дархост мекунанд ва онҳоро ба намоиш мефиристанд.
Контроллерҳо ба сифати синфҳои ООП тасвир меёбанд.
Як файл - як синф ва, ба таври мувофиқ,
як контроллер аст. Дар фреимворки мо контроллерҳо
дар пӯшаи project/controllers нигоҳ дошта мешаванд.
Биёед дар сохтани контроллерҳо машқ кунем.
Барои гарм кардан синфи PageController-ро месозем,
ки саҳифаҳои матнии сомонаи моро идора мекунад.
Биёед ҳоло файл барои контроллери мо эҷод кунем.
Мувофиқи қоидаҳои фреимворки мо ҳар як синф
бояд дар файле бо ҳамон ном нигоҳ дошта шавад
(то ҳатто регистр). Яъне синфи мо PageController
дар файли PageController.php нигоҳ дошта мешавад.
Ин файл дар пӯшаи project/controllers эҷод кунед.
Дар ин файл синфи моро созем:
<?php
namespace Project\Controllers;
use \Core\Controller;
class PageController extends Controller
{
}
?>
Чунон ки мебинед, синфи мо ба фазои номҳои
Project\Controllers тааллуқ дорад, пайравӣ карда аз
созишнома дар бораи боркунии худкори файлҳо
(яъне роҳ тавассути пӯшаҳо
бояд бо фазои номҳо мувофиқат кунад).
Ғайр аз ин, синфи мо аз синфи
Core\Controller мерос гирифтааст, ки дар ядрои
фреимворк ҷойгир аст. Дар ин ҳеҷ маънои чуқурро
набояд ҷустӣ кард, балки танҳо бояд онро ҳамчун қоидаи
фреимворк қабул кард. Ин аст он қоида: ҳамаи контроллерҳое, ки шумо месозед, бояд аз
синфи Core\Controller мерос гиранд, то ҳама чиз
тавре ки лозим аст, кор кунад.