1. PHP 5.3.7 보다 크고 7.5 보다 낮게 설정 권장 (chriskacerguis/codeigniter-restserver 3.1.5 사용중)

2. 사용된 프레임워크 : CI 3.1.12, 

3. 깃허브 주소: https://github.com/antam2010/ait  (현재 private)

 

사용방법 : 

- composer install 해서 라이브러리 설치

- vendor 디렉토리는 third_party 하위에 생성되도록 해놓았음

"config": {
        "vendor-dir": "application/third_party/vendor"
    },

 

- node 설치 후 글로벌로 apidoc 설치

- 해당 명령어는 주석으로 api-doc 문서 작성이나 수정하고 실행하면 됨

npm install -g apidoc

 

실서버 api-doc 생성일경우 :  apidoc -i application/controllers/ -o docs --config apidoc.prod.json --verbose
로컬 api-doc 생성일경우 :  apidoc -i application/controllers/ -o docs --config apidoc.local.json --verbose

 

4. 외부 API 사용법

- 모델에 해당 코드처럼 사용하면 됨

- require 하는이유는 밑처럼 subclass_prefix 를 MY 로 해두었지만 MY_Input, MY_Model 처럼 사용해야 자동으로 로드되됨

$config['subclass_prefix'] = 'MY_';
require_once APPPATH . 'core/MY_api_Model.php';
class model_name  extends MY_api_Model {

 

 - config/config.php 맨 하단에

$config['ai_api_domain'] = 외부api 주소

 

설정 후에 사용 하면 됨

 

5. 내부 모델은 core/MY_model.php 만들어놓았으니 extends 해서 사용

- class model_name  extends MY_Model {

 

 

$issuer = "localhost";
$audience = "localhost";
$issuedAt = time() - 5; //발행시간
$notBefore = $issuedAt; // seconds 즉시사용으로 처리, 서버에서 지연설정 있을시 설정
$expirationTime = $issuedAt + (60 * G5_JWT_ACCESS_MTIME); //유효시간 

$payload = array(
    "id" => $id,
    "iss" => $issuer,
    "aud" => $audience,
    "iat" => $issuedAt,
    "nbf" => $notBefore,
    "exp" => $expirationTime
);

서버 A 에서 토큰을 생성 후 B서버에서 토큰을 인증할 때 nbf 에러가 발생하였다.

 

서버 A 와 B 서버에서 1초차이가 났는데 매일 자정마다 서버 시간을 업데이트 하지만 1초 차이가 통신하면서 나나 보다.

 

 

1. .ttf 확장자를 가진 나눔고딕 등 다운로드

2. tcpdf_addfont.php 경로를 찾으면됨

-  application\vendor\tecnickcom\tcpdf\tools 경로에있어서 cd 로 이동하였음

3. 커맨드에 명령어 입력 : php .\tcpdf_addfont.php -i assets\font\Nanum\NanumBrushScript-Regular.ttf

>>> Converting fonts for TCPDF:
*** Output dir set to \application\vendor\tecnickcom\tcpdf/fonts/
+++ OK   : \assets\font\Nanum\NanumBrushScript-Regular.ttf added as nanumbrushscript
>>> Process successfully completed!

 

이러면 설치가 완료되었음을 알 수있다.

 

 $pdf->SetFont('dejavusans', '', 12);

이코드를 찾아서

 $pdf->SetFont('nanumbrushscript', '', 12);

이렇게 수정해주었다.

윈도우에 WSL2 를 사용하여 Ubuntu PHP 7.4 CLI 를 설치하였다.

php 도 프론트마냥 cli 로 하는게 있었나 싶어서 설치했는데

명령어는 

php -S localhost:80 /var/www/html 이런식으로 가능했다

실행시키면 터미널 조작이 불가능하니깐

여러개를 실행시켜야할 경우 

 

- php -S localhost:81 /var/www/html/index.php > /dev/null 2>&1 & 이렇게 백으로 실행시켜도 되고

 

screen 명령 후에

- php -S localhost:81 /var/www/html 
 
컨트롤 + a 두번 클릭 후 스크린으로 이동
 
후에 작업 해도된다.

 

만약 칼럼을 1,2,3,4,22 이런식으로 저장하여 정규화 안했을 때 해당 값을 배열로 치환하여 디코드 된 데이터 보내는 방법이다

 

/**
     *  한글로 변형, 배열로 치환
     *
     * @param String $ctg_svc = [1,2,3,4,5] or "12,3,4,5"
     * @param boolean $sort true: 키값 순서대로, false : 키 값 카테고리 코드에 담아서
     * @return array
     */
    function func($ctg_svc, $sort = false) {

 

        if(!is_array($ctg_svc)) {
            $ctg_svc = explode(",", $ctg_svc);                                  
        }
        if(empty($ctg_svc)) {
            return false;
        }
        //리스트
    
       $ctg_list[0] = ['category_code' => 1 , category_name => "사과' ];
       $ctg_list[1] = ['category_code' => 2 , category_name => "바나나' ];
       $ctg_list[2] = ['category_code' => 3 , category_name => "딸기" ];
       $ctg_list[3] = ['category_code' => 4 , category_name => "키위' ];
       $ctg_list[4] = ['category_code' => 5 , category_name => "수박' ];
                                                       ...
                                                       ...
                                                       ...
 
       
        foreach($ctg_list as $cl) {
            if( in_array($cl["category_code"], $ctg_svc) ) {
                if($sort === true) {
                    $ctg_svc_name[] = $cl["category_name"];
                } else {
                    $ctg_svc_name[$cl['category_code']] = $cl["category_name"];
                }
            }
        }
        return $ctg_svc_name;
    
$svcArr = [
           'A' => [1,2,3,5,4] ,
           'B' => [1,1,2,3,4],
           'C' => [1,1,1,3,4,5]
        ]
  
  또는 
  $svcArr = [
           'A' => "1,2,3,5,4" ,
           'B' => "1,1,2,3,4",
           'C' => "1,1,1,3,4,5"
        ]

        
        foreach($svcArr as $key => $val) {
			if(is_array($val)) { //배열이면 중복제거
				$val = array_unique($val);
			} else {
				$val = array_unique(explode(",", $val)); //string 이면 배열로 치환 후 중복제거
			}
			$svcArr[$key] = sort($val); //정렬
			$svcArr[$key] = implode(",", $val); //문자로 치환 
		}
        
        return {
        	$svcArr['A'] = "1,2,3,4,5"  //순서정렬
            $svcArr['B'] = "1,3,4,5" //중복제거
            $svcArr['C'] = "1,3,4,5" //순서제거 및 중복제거
              
        }

 

<?php $array = ['a' => 1, 'b' => 2];?>

<script>
let name = 'a';
let result = "";
<? foreach($array as $key => $val) { ?>
	if("<?=$key?>" == name) {
		result = "<?=$val?>";
	}
<? } ?>
</script>

 

+ Recent posts