CI 묻고 답하기

제목 내가만든 라이브러리
카테고리 CI4 관련
글쓴이 헛발이 작성시각 2020/11/11 12:20:51
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 165   RSS

좀처럼 코드이그나이터4가 손에 익숙해지지 않네요..

 

간단히 제가 만든 라이브러리를 불러 사용하고 싶은데

오토로드

네임스페이스 

등등 사용해 봤는데..

되지 않아 도움을 청합니다...

 

사용방법좀 알려 주세요

메뉴얼을 봐도 모르겠고

인터넷에 있는것을 해 봐도 나만 안되고...

 

ㅠㅠ

 다음글 트랙잭션 관련 질문입니다. (1)
 이전글 에러 질문드립니다. (6)

댓글

PureAni / 2020/11/11 12:54:54 / 추천 0

/app/Libraries 를 말씀하시나요?

/app/ThirdParty 를 말씀하시나요?

직접 만든 라이브러리라고 하시면, /app/Libraries 이실거 같은데,,

테러보이 / 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 이쪽에 넣을 라이브러이였습니다.

답변 모두 감사합니다. 위의 소스로 참고해서 성공해 보겠습니다..