MVC-ում կոնտրոլերները PHP-ում

Առաջին բանը, որով կզբաղվենք, կոնտրոլերներն են: Կոնտրոլերները մշակում են օգտատիրոջ հարցումները, հասկանում են, թե ինչ է օգտատերը ցանկացել հարցնել կայքից, համապատասխան տվյալները խնդրում են մոդելից և ուղարկում դրանք ներկայացմանը:

Կոնտրոլերները ներկայացնում են OOP դասեր: Մեկ ֆայլը դա մեկ դաս է և, համապատասխանաբար, մեկ կոնտրոլեր: Մեր ֆրեյմվորկում կոնտրոլերները կպահպանվեն project/controllers պանակում:

Եկեք վարժվենք կոնտրոլերների ստեղծման մեջ: Տաքացման համար կստեղծենք PageController դասը, որը կկառավարի տեքստային էջերը մեր կայքում:

Եկեք անմիջապես ստեղծենք ֆայլ մեր կոնտրոլերի համար: Մեր ֆրեյմվորկի կանոններով յուրաքանչյուր դաս պետք է պահպանվի նույնանուն ֆայլում (մինչև ռեգիստրը): Այսինքն մեր PageController դասը կպահպանվի PageController.php ֆայլում: Ստեղծեք այս ֆայլը project/controllers պանակում:

Այս ֆայլում կստեղծենք մեր դասը:

project/controllers/PageController.php<?php
  namespace Project\Controllers;
  use \Core\Controller;
  
  class PageController extends Controller
  {
    
  }
?>

Ինչպես տեսնում եք, մեր դասը պատկանում է Project\Controllers անվանատարածքին, հետևելով ֆայլերի ավտոլoading-ի պայմանավորվածությանը (այսինքն պանակների ուղին պետք է համընկնի անվանատարածքի հետ):

Բացի այդ, մեր դասը ժառանգվում է Core\Controller դասից, որը գտնվում է ֆրեյմվորկի միջուկում: Սրա մեջ խորը իմաստ փնտրելու կարիք չկա, այլ պարզապես պետք է ընդունել որպես ֆրեյմվորկի կանոն: Ահա այդ կանոնը. ձեր ստեղծած բոլոր կոնտրոլերները պետք է ժառանգեն Core\Controller դասից, որպեսզի ամեն ինչ աշխատի այնպես, ինչպես պետք է: