PHP

php 자동 클래스 불러오기 구현 spl_autoload_register()함수

Dev갱이 2020. 3. 26. 11:48
728x90

먼저 디렉토리 구조를 짜면

 

project -  class - mysql.php , SimpleSql.php

          -  lib - autoload.php

            index.php

 

이런식이라는 가정하에

index.php에서

require_once(LIB_PATH."/autoload.php");

autoload.php 파일만 include하면 class파일을 다 사용할 수 있는 정말 혁신적인거네!

 

---  autoload.php  ---

spl_autoload_register(function($className) {

include "class/".$className . '.php';

});

spl_autoload_register 자체가 내장 함수 이기 때문에

$className이라는걸 따로 지정하지 않아도 class 파일에 있는 모든 파일들을 자동 include해준다.!!!

 

/*** 문제점에 봉착한게 파일명과 class명을 같게 해줘야함!!!! ***/

 

--- index.php ----

require_once(LIB_PATH."/autoload.php");

$obj = new SimpleSql(DB_HOST, DB_USER, DB_PASS, DB_NAME);

$row = $obj -> fetchRow("SELECT * FROM g5_member WHERE mb_id='admin'");

성공!

$work = new work();

$resut = $work -> work();
echo $resut;

성공!

728x90