본문 바로가기

PHP, Codeigniter19

codeigniter4 set_cookie AJAX를 이용한 경우 에러 해결 codeigniter3에서는 정상적으로 작동 되던 set_cookie가 codeigniter4에서 안되어 엄청 애를 먹었다. 포기 직전까지 갔다가 오기가 생겨 밤 늦게까지 codeingiter 명세서를 꼼꼼하게 다시 정독하였고 http responses에서 힌트를 얻어 해결하였다. 먼저 set_cookie는 서버측에서 쿠키를 생성하고 클라이언트에게 전송 한다. 하지만 AJAX를 이용해서 해당 컨트롤러에서 관련 로직을 처리하는 경우 CI4에서는 쿠키를 생성만 하고 자동 응답하는 로직이 없는듯해보였다. 해답은 $this->response 이다. public function ajaxCookieTest() { if ($this->request->isAJAX() == false) { exit; } $code = .. 2023. 4. 12.
codeigniter4 views 경로 바꾸기, view path 가져오기 1. Views 경로 바꾸기 Views 디렉토리를 다른곳에 위치시키는 방법입니다. /app/Views 디렉토리를 원하시는 곳에 이동 시킵니다. 저는 루트 디렉토리로 이동 시켰습니다. 단 public/ 하위에는 직접 접근이 가능함으로 별도의 처리가 필요합니다. /app/Config/Paths.php 을 편집합니다. 현재 경로 /app/Config/ 에서의 상대경로를 새로 정해주시면 Views 폴더를 사용하실수 있습니다. 보안상의 이유로 app 디렉토리 안에 위치하는 것을 권장드리지만 public이 루트 디렉토리임으로 접근할 수 없을 것이라고 판단이 되어집니다. 아직까진 문제가 없지만 좀더 테스트가 필요해보입니다. 2. View path 가져오기 paths 클래스를 이용하여 view의 경로를 가져올 수 있습.. 2023. 4. 8.
php 배열 첫번째 요소 선택(순차 배열, 연관 배열) 고유한 키값이 없는 순차 배열에서 첫번째 요소를 선택하려면 아래와 같습니다. $arr = ['google','naver','kakao']; echo $arr[0]; 하지만 문자열 키를 가진 배열(연관배열)에서 첫번째 요소를 선택하기위해서는 $arr[0]을 사용하지 못합니다. 이 경우 array_keys() 함수를 이용하면 쉽게 가져올 수 있습니다. $arr = array( "google" => array( "use" => "1", "key" => "000SyA9kAILCqqtsAqQHNPHd3Jo-tj28aXDpFA" ), "kakao" => array( "use" => "0", "key" => "00003007594db21beac217728ef7cd8a" ) ); $keys = array_keys($a.. 2023. 4. 6.
codeigniter4 섬네일 만들기 기존에 ci4 메뉴얼 보고는 한계가 있어 직접 만들어서 사용했다. 파일처리 관련 모델을 생성하여 아래 함수를 넣어놓고 사용하면 편리하다. /** * makeThumbnail * @param string $filePath 업로드 파일경로 * @param string $fileName 업로드 파일명 * @param int $width 가로 * @param int $height 세로 * @param int $quality 품질 * @param string $resizePoint : max|min * @param bool $makeForce * @return bool */ public function makeThumbnail($filePath, $fileName, $width = 250, $height = 25.. 2023. 3. 30.
php 객체를 배열로, 배열을 객체로 php 객체(stdClass)를 배열로 변경하는 함수 function obj_to_arr($arr) { if (is_object($arr)) $arr = get_object_vars($arr); return is_array($arr) ? array_map(__FUNCTION__, $arr) : $arr; } php 배열을 객체로(stdCLass) 변경하는 함수 function arr_to_obj($arr) { return is_array($arr) ? (object) array_map(__FUNCTION__, $arr) : $arr; } 2023. 3. 27.