<?phpnamespace Frameworkcore;
class Framework{ //생성자 메소드에서 초기화됨 public function __construct() { $this->initMCA() $this->dispatch() } //자동 로딩 등록; public function autoload() { //참고: 함수의 매개변수가 콜백 함수인 경우 함수 이름을 직접 작성하세요. 객체 메소드 spl_autoload_register(array($this,"autoloader")) //자동 로딩 기능 public function autoloader($className) { echo '필요:'.$className.'<br>' / /타사 클래스에 대한 특별한 경우 만들기 if($className=='Smarty'){ require_once '. /framework/vendor/smarty/Smarty.class.php'; 구분된 네임스페이스의 클래스 $arr =explore('\', $className) //2. if($arr[0] == '프레임워크'){ $ basic_path = './' }else{ $basic_path = './application/'; } 사용 's를 사용하여 사용 } 사용을 통해 통해 통해 통해 통해 통해 통해 ‐ ~ ‐‐ ‐ , //4. 접미사 결정: 클래스 파일의 접미사: .class.php, 인터페이스 파일의 접미사: .interface.php // FrameworkdaoI_DAO, 마지막 요소가 I_로 시작하는지 확인 if(substr($arr [count($arr)-1], 0,2)=='I_'){ ~$class_file = $basic_path.$sub_path.$fix; //5. 클래스 로드 //네임스페이스의 규칙에 따라 정의되지 않은 경우 로드해야 하는 클래스가 아니라는 의미입니다. if(file_exists($class_file)) { require_once $class_file; ~ ‐ ‐‐‐‐ ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ $m = isset($_GET['m'])?$_GET['m']:'home'; Define('MODULE', $m) $c = isset($_GET[ 'c'])?$_GET['c']:'Index'; Define('ControlLER', $c); //컨트롤러의 어떤 작업에 액세스합니까? )? $_GET['a']:'indexAction'; 정의('ACTION', $a); } //객체를 인스턴스화하고 메소드 호출 public function dispatch() { $controller_name = MODULE.'controller\'. CONTROLLER.' Controller '; // 컨트롤러 클래스를 먼저 로드한 다음 객체를 인스턴스화합니다. $ Controller = new $ Controller_name; // 컨트롤러 호출 방법 $ a = action; }
smarty를 다시 다운로드하여 프로젝트의 smart에 sysplugins 폴더가 있는지 확인하고,plugins 폴더가 없으면 시험에 응시하세요.