반응형

php 15

코드이그나이터3(CI3)에서 CI4로! 프로젝트 전환 후기 1 (feat. 서비스 패턴)

지금까지 CI3 를 사용하다가 CI4 로 바꾸자고 얘기하면서 드디어 CI4로 바꾸게 되었다.CI3에 익숙했던 팀원들을 설득하는 과정은 쉽지 않았지만, CI4가 가진 현대적인 개발 방식과 구조적 이점을 생각하면 반드시 가야 할 길이라고 생각했다.새 프로젝트를 진행하면서 CI3와 CI4를 다루면서 느끼는 차이점을 적을 예정이다. 1. 개발 환경: PHP 7.4와 CI 4.4일단 CI4는 PHP8 이상의 서버 환경을 추천하지만 환경상 PHP7.4 로 진행해야했기에최신버전의 CI4 4.6버전이 아닌 CI4 4.4 버전으로 낮춰서 진행했다.2. 사소하지만 중요한 변화: 코드 스타일의 현대화가장 먼저 팀원들과 합의한 것은 코드 스타일의 통일이다.기존 CI3 방식: 스네이크 케이스 (test_code, get_use..

url 프래그먼트/해시(#) 에 대해

많이 보던거지만 평소에 그냥 지나치던 것이라서 갑자기 궁금하게 되어 확인했다.궁금해진 이유는 url의 파라미터 값을 받기위해 처리를 하다가 문득 # 가 제외된다는게 눈에 띄어서 확인하게되었다. 웹페이지에서 검색하다보면http:aaa/test/1/dd#이라고 끝에 # 가 붙는 경우를 볼 수 있다.이 url을 서버에 넘기면 서버에서는 #을 제외하고 http:aaa/test/1/dd 이것만 인식하여 처리하게 된다. 이건 특정 프레임워크 때문이 아닌 웹 동작의 근본을 두고있다.이것의 유일한 역할은 웹 서버가 아니라, 사용자의 웹 브라우저에게 "페이지 로드가 완료되면, 이 ID를 가진 특정 위치로 화면을 스크롤해줘" 라고 알려주는 클라이언트 사이드(Client-side) 전용 책갈피이다.동작 흐름은 다음과 같다고..

php 2025.07.03

php 8.1 phpexcel 대체

기존 phpexcel 을 사용중이였는데 버전업을 진행하며 이제는 더이상 phpexcel를 사용할 수 없게되었다.파일을 읽는건 문제 없지만 엑셀을 출력하기위해 엑셀을 쓰는 과정에서 오류가 있었다.다음은 오류중 하나이다더보기Message: Return type of PHPExcel_WorksheetIterator::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice그냥 간단하게 타입명시 오류다.일일이 고치기도 힘들기에 이제는 더이상 phpexcel을 가지고 갈 수 없는 환..

curl 대체 코드

제목 그대로 php에서 curl 을 사용하고 싶은데 사용하지 못하는 경우 사용한 코드이다.해당 문제는 APM 를 배포하는 부분에서 발생했다.APM 을 배포하여 아파치와 PHP가 새로운 환경에 설치되는데 해당 PC에서 오류가 났었다.분명 내 PC에서 테스트시 문제가 없었지만 새로운 환경으로 배포하면 오류가 생기는 상황이라 당황스러웠다.코드도 완벽히 같은 상황에서 확인해보니 curl 사용하여 외부 api 를 호출하는 부분에서 오류가 생겼다.내가 테스트했던 pc인 경우 curl 을 설치했던 이력이 있어서 문제가 없었지만 새롭게 설치되는 환경에서는 해당 설치가 이뤄지지 않았기에 오류가 생겼던 것이다.매 환경마다 curl을 설치할 수는 없기에 curl을 사용하지 않기로 했다. 다음은 대체 코드이다GET 호출// ..

php 2024.10.07

php 오라클 date 타입 형식 변경

php에서 오라클 데이터중 date 형식의 데이터를 가져오게되면10-Oct-03 이런식으로 가져오는 경우가 있다.이런경우 형식을 YYYY-MM-DD HH24:MI:SS 형식으로 바꿔주는 방법이다. class Test_model extends CI_Model{ public function __construct() { parent::__construct(); $this->set_nls_date_format(); } /** * 해당 세션에서만 오라클 date 타입 형식을 바꿔주는 쿼리 */ public function set_nls_date_format($format = 'YYYY-MM-DD HH24:MI:SS'){ $query = "ALTER SESSION SET nls_date_format = '..

php/java view생성 후 ajax리턴

웹에서 새로고침 없이 화면을 그릴때 ajax를 써서 화면을 생성한다.html을 모두 그려야되는 경우 활용할만한 알고리즘으로php에서 html을 생성 한 후 return 해주는면 된다.​php코드function get_page(){ $new_view = $this->create_view(); //아래 함수에서 html을 리턴 받는다 $this->load->view("/test/page", array( "json_html" => $new_view ));}//view를 생성하여 리턴해준다. load->view 파라미터에 true를 넣으면 html을 출력하지않고 변수로 return 해줄수있다.function create_view(){ $data1 = "testestt"; $row = "db_data..

php 암호화

양방향 암호화기존 양방향 암호화 알고리즘으로 openssl_encrypt를 사용했었다. //암호화function encrypt($str, $key='') { if (!$key) return ""; return base64_encode(openssl_encrypt($str, "AES-256-CBC", $key, true, str_repeat(chr(0), 16)));}//복호화function decrypt($str, $key='') { if (!$key) return ""; return openssl_decrypt(base64_decode($str), "AES-256-CBC", $key, true, str_repeat(chr(0), 16));} 그런데 패스워..

반응형