0

//MY_controller.php   ## 코어 확장
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class MY_Controller extends CI_Controller {
    public function __construct()
    {
        parent::__construct();
        //모델 로드.
        $this->load->model( 'config_m' );
        //설정값 가져오기.
        $Result = $this->config_m->GetRecords();
        //결과값이 FALSE이면 에러를...
        if( $Result === FALSE)
        {
            log_message('mylog', '설정 파일 불러오기 에러');
            echo "No Setting Config.";
            exit();
        }
        else
        {
            foreach( $Result AS $Row )
            {
                if( ! defined( strtoupper( $Row['co_key'] ) ) )
                {
                    define( strtoupper( $Row['co_key'] ), $Row['co_value'] );
                }
            }
        }
    }
}
//Config_m.php   ## 모델
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Config_m extends MY_Model {
    function __construct()
    {
        parent::__construct();
        $this->load->database();
    }
    /**
     * 컨피크 정보를 로드한다.
     * 로드후에 값이 없을경우 FALSE 반환
     * 값이 있을경우 result_array로.
     */
    public function GetRecords()
    {
        //기본 셀렉트로 조회.
        $Query = $this->db->get('configs');
        //설정값이 없을때.
        if( $Query->num_rows() <= 0 )
        {
            return FALSE;
        }
        //값이 있을때..
        else
        {
            $ReturnData = $Query->result_array();
            return $ReturnData;
        }
    }
}


간혹 글로벌 한 변수를 쓰고 싶은데 단순값이어서 코딩으로 대처 하기 귀찮은 분들에게 유용한팁!


단! 무조건 문자열로만 저장됨.


아래는 스키마



CREATE TABLE `configs` (
  `co_idx` int(11) NOT NULL COMMENT '고유아이디',
  `co_key` varchar(255) NOT NULL DEFAULT '-' COMMENT '키값',
  `co_value` varchar(255) NOT NULL DEFAULT '-' COMMENT '설정값',
  `co_created` int(11) NOT NULL DEFAULT '0' COMMENT '생성일'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='설정테이블';

ALTER TABLE `configs` ADD PRIMARY KEY (`co_idx`);
ALTER TABLE `configs` MODIFY `co_idx` int(11) NOT NULL AUTO_INCREMENT COMMENT '고유아이디';