| 제목 | 내가만든 라이브러리 | ||
|---|---|---|---|
| 카테고리 | CI 4 관련 | ||
| 글쓴이 | 헛발이 | 작성시각 | 2020/11/11 12:20:51 | 
|  | |||
| 좀처럼 코드이그나이터4가 손에 익숙해지지 않네요.. 
 간단히 제가 만든 라이브러리를 불러 사용하고 싶은데 오토로드 네임스페이스 등등 사용해 봤는데.. 되지 않아 도움을 청합니다... 
 사용방법좀 알려 주세요 메뉴얼을 봐도 모르겠고 인터넷에 있는것을 해 봐도 나만 안되고... 
 ㅠㅠ | |||
| 다음글 | 트랙잭션 관련 질문입니다. (1) | ||
| 이전글 | 에러 질문드립니다. (6) | ||
| 
                                PureAni
                                /
                                2020/11/11 12:54:54 /
                                추천
                                0
                             | 
| 
                                테러보이
                                /
                                2020/11/11 13:08:05 /
                                추천
                                0
                             # \app\Libraries\Banner_lb.php 
<?php namespace App\Libraries;
class Banner_lb
{
    public $bnCacheTTL = (60*60*24)*1; // 배너캐시 유효시간(defaylt: 1일)
    public function __construct()
    {
    }
    // 배너 데이터 호출
    public function getBanner(string $type, int $limit=1, string $addCacheName=null)
    {
        // 기본변수 생성
        $cache_name = 'banner_'.$type.$addCacheName; // 캐시이름
        $cache = cache($cache_name); // 캐시 조회
        // !캐시가 있다면 캐시를 반환
        if ($cache != null) {
            return json_decode($cache, true); // 캐시반환
        }
        // !캐시가 없다면 데이터 생성 후 캐싱
        else {
            // 데이터 호출
            $db = \Config\Database::connect();
            $data = $db->query(" select * from config_banner where b_type = '{$type}' and b_view = 'Y' and (b_term_set = 'N' or (b_term_set = 'Y' and curdate() BETWEEN b_start_date and b_end_date)) order by b_sort*-1 asc, idx*-1 asc limit {$limit} ")->getResultArray();
            // 데이터 보정
            $data[0]['b_link'] = '/';
            foreach ($data as $k=>$v) {
                // base_url 처리
                if(str_replace(array('http://', 'http://'), '', $v['b_link']) == $v['b_link'] && empty($v['b_link']) != false) {
                    $data[$k]['b_link'] = base_url($v['b_link']);
                }
                // 타겟보정
                $data[$k]['b_link_type'] = (empty($v['b_link_type']) || $v['b_link_type'] == '_self'?'':$v['b_link_type']);
            }
            cache()->save($cache_name, json_encode($data, JSON_UNESCAPED_UNICODE), $this->bnCacheTTL); // 캐시기록
            return $data;
        }
    }
    // 배너캐시 삭제
    public function clearCache(string $type, string $addCacheName=null) {
        cache()->delete('banner_'.$type.$addCacheName);
    }
}
# \app\Controllers\Home.php 
<?php namespace App\Controllers;
use App\Libraries\Banner_lb;
class Home extends BaseController
{
    public function __construct()
    {
        $this->banner = new Banner_lb();
        dd($this->banner->getBanner('pc_top_logo'));
    }
}
 | 
| 
                                테러보이
                                /
                                2020/11/11 13:08:28 /
                                추천
                                0
                             
                                대략적인 사용예제입니다.
                             | 
| 
                                헛발이
                                /
                                2020/11/11 15:34:02 /
                                추천
                                0
                             /app/ThirdParty 이쪽에 넣을 라이브러이였습니다. 답변 모두 감사합니다. 위의 소스로 참고해서 성공해 보겠습니다.. 
 
 | 
/app/Libraries 를 말씀하시나요?
/app/ThirdParty 를 말씀하시나요?
직접 만든 라이브러리라고 하시면, /app/Libraries 이실거 같은데,,