⊗ppMVDFmDs 29 of 35 menu

나만의 MVC 프레임워크에서 디스패처 개발하기

현재 파일 index.php의 내용을 다시 떠올려 봅시다:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // 당신의 자동 로드 구현 }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); ?>

보시다시피, 지금은 우리 라우터가 컨트롤러 이름, 액션 이름 및 주소 표시줄에서의 매개변수를 포함하는 Track 클래스의 객체를 반환합니다. 또한, 이전 강의에서 우리는 모든 컨트롤러의 부모를 만들었습니다.

이제 우리의 변수 $track에 포함된 컨트롤러 메서드를 호출하도록 할 수 있습니다.

이 작업은 특별한 클래스 Dispatcher가 담당할 것입니다. 디스패처는 Track 클래스의 객체를 받아서 그 데이터를 기반으로 지정된 클래스의 객체를 생성하고, 해당 클래스의 메서드를 호출하며, 이 메서드에 매개변수를 전달할 것입니다.

index.php 파일에 디스패처 호출을 추가해 보겠습니다:

<?php namespace Core; error_reporting(E_ALL); ini_set('display_errors', 'on'); spl_autoload_register(function($class) { // 당신의 자동 로드 구현 }); $routes = require $_SERVER['DOCUMENT_ROOT'] . '/project/config/routes.php'; $track = ( new Router ) -> getTrack($routes, $_SERVER['REQUEST_URI']); // 디스패처 호출: $page = ( new Dispatcher ) -> getPage($track); ?>

우리 디스패처의 메서드 getPage를 호출하면 컨트롤러의 메서드 render를 호출하고 이 메서드 호출이 반환하는 것을 반환할 것입니다. 이전 강의에서 이미 알게 되었듯이, 컨트롤러의 render 메서드는 Page 클래스의 객체를 반환합니다.

다음은 우리의 클래스 Dispatcher의 기본 틀입니다:

<?php namespace Core; class Dispatcher { public function getPage(Track $track) { ...코드 return 컨트롤러 -> render(매개변수); } } ?>

제가 준비한 기본 틀을 사용하여 설명된 클래스 Dispatcher를 구현하세요. 작동을 확인하세요. 어려움이 있으면 제가 만든 학습용 프레임워크의 파일에서 소스 코드를 참고하세요.

한국어
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақКыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
우리는 웹사이트 운영, 분석 및 개인화를 위해 쿠키를 사용합니다. 데이터 처리는 개인정보 처리방침에 따라 이루어집니다.
모두 수락 설정 거부