프로그래밍/PHP 21

PHP에서 상수의 사용

일반 상수 (Constant)사용 상수란 단순한 값에 이름을 명명하여, 소스의 가독성을 높일 수 있는 유용한 기능입니다. 단순 숫자 65 만으로는 알파벳 "A" 인지, 나이 제한인지 구별을 할 수 없지만, "ALPHA_A", "LIMIT_AGE" 등으로 상수로 명명해 놓으면, 코드의 가독성이 아주 달라집니다. 상수로 입력한 곳은 소스가 실행될 때, 상수를 정의할 때 입력한 값으로 대체되어 실행됩니다. 일반적으로 전역 상수(Global Constant)를 정의할 때 "define()" 구문을 이용합니다. 상수의 이름으로 사용할 수 있는 문자는 "^[a-zA-Z_\x80-\xff][a-zA-Z0-9_\x80-\xff]*$" 입니다. 일반적으로 상수는 영문일 경우 대문자만으로 명명합니다. 아래 전역 상수를 정..

프로그래밍/PHP 2019.05.21

[CodeIgniter] Message: session_write_close(): Skipping numeric key 0 Error

문제점 및 원인분석다음과 같이 CodeIgniter로 모델에서 받은 데이터를 곧바로 세션에 할당하려는 와중에 위와 같은 오류 메시지를 받았습니다. if ($this->input->method() === 'post' ) { $admin_id = $this->input->post('mem_id'); $admin_pw = $this->input->post('mem_password'); $admin = $this->login_model->get_admin($admin_id, $admin_pw); if ( isset($admin) && !empty($admin) ) { $this->session->set_userdata($admin); 오류 상세 내용은 아래와 같습니다. 아래 참고자료에 따르면 세션의 색인 참조값..

프로그래밍/PHP 2019.05.10

개발계/운영계 PHP 서버 환경 맞추기

문제점개발계 소스 전체를 그대로 복사하여, Apache24 + PHP7 + MariaDB 에서 서비스를 시작하면, 최초 로그인 페이지까지는 정상적으로 표시되었습니다.하지만, 로그인부터 오류가 발생하여 CI를 최신 버전으로 업데이트한 이후에 로그인은 가능하지만, 몇몇 소스에서 오류가 발생하며 정상적으로 동작되지 않습니다.전체적으로 개발계와 운영계가 다른 모습으로 동작을 하는데, 주요 이유는 개발계와 운영계의 php.ini 설정이 서로 달라서 발생하는 문제인 것으로 예상됩니다. 원인 분석개발계(dev.hbesthee.kr) PHP7 버전 확인 ; PHP 7.0.16 (cli) (built: Mar 3 2017 13:05:33) ( NTS )PHP7 버전 정보 $ /opt/php/bin/php --versio..

프로그래밍/PHP 2019.01.29

코드이그나이터(CodeIgniter) 유닛 테스트(Unit Test) 시험

Unit Test Controller를 작성하여 시험하는 방법브라우저에서 해당 Controller를 호출하여 시험 결과를 확인하는 방식특정 시점에서 단위 시험 결과를 리포팅 받아 정리하는 용도 정도로 활용 가능Continous Integration에는 적합하지 않음관련 예제12345678910111213141516171819202122232425262728293031323334353637383940414243444546동작 예시 참고자료"CodeIgniter Tutorial : How to Using Unit Testing in CodeIgniter":https://www.youtube.com/watch?v=rq7W-rLSloA"단위테스트 Unit Testing Class":https://codeigni..

프로그래밍/PHP 2019.01.28

PHP 삼항 연산자 ( ? : ) 사용 주의점

삼항 연산자(Ternary Operator)를 자주 사용하는 이유는 무엇보다도 if 나 switch 보다 간결하게 사용하기가 편하기 때문일겁니다. 하지만, PHP에서 삼항 연산자를 아래와 같이 중첩하여 사용하는 경우, 원치 않는 결과가 나와 당혹스러운 경우가 발생하게 됩니다.$a = 2; echo ( $a == 1 ? 'one' : $a == 2 ? 'two' : $a == 3 ? 'three' : $a == 4 ? 'four' : 'other'); echo "{$a}\n"; // prints 'four' 우선순위에 맞게 괄호로 묶어 주어야만 원하는 결과가 올바르게 출력됩니다.$a = 2; echo ($a == 1 ? 'one' : ($a == 2 ? 'two' : ($a == 3 ? 'three' : ..

프로그래밍/PHP 2018.11.12

CodeIgniter에서 쿼리 결과에 처리 주의할 점 ; COUNT () 등 함수 사용 등

CodeIgniter에서 DB의 쿼리 결과를 받아서 처리하는데, unbuffered_row() 또는 row() 함수를 이용하게 되는데, 주의할 점은 기본적으로 레코드가 stdClass Object로 변환되어 받게 된다는 점이다. 문제는 다음과 같이 쿼리를 작성하였을 경우, "COUNT" 에 대한 변수명을 처리하기가 애매해 진다. $sql = "SELECT COUNT(1) FROM member WHERE user_name LIKE '%{$name}%';"; foreach()를 통하여 반환된 레코드 클래스에 접근한다면 문제가 발생하지 않지만, key value 쌍으로 반환되기 때문에 해당 key를 찾아서 작업을 별도로 해줘야 하기 때문에 번거로운 작업이 필요하게 된다.다음은 Pagination을 위하여 전체..

프로그래밍/PHP 2018.10.31

Install apache24 + PHP7 + CodeIgniter3 for Windows

Windows 개발 환경에서 apache24 + PHP7 + CodeIgniter3 를 설치하여 연동하는 방법을 기술합니다.CodeIgniter3 를 호출할 때, index.php가 없어도 되도록 rewrite 모듈 설정도 포함합니다. Install apache24apache24 download in https://www.apachelounge.com/download/ : Apache 2.4.35 Win64Extract to "C:\Dev\Apache24" Edit httpd.conf : "C:\Dev\Apache24\conf\httpd.conf"Set ServerRoot Define SRVROOT "c:/Dev/Apache24"Set ServerName ServerName devwb.mydomain.c..

프로그래밍/PHP 2018.10.17

PHP debug in Visual Studio code

xDebug.dll download v2.6.1 for PHP 7.2 (Thread safe x64)자신이 설치한 PHP 버전에 맞는 DLL을 다운로드 해야함phpinfo의 결과 정보를 확인하거나, 잘 모를 경우에는 phpinfo() 결과를 복사하여 https://xdebug.org/wizard.php 에 붙여넣어 다운로드할 파일을 자동을 확인할 수 있음 Download and copy : C:/Dev/php-7.2.10/extphp.ini 파일의 수정 ; 다음 내용을 추가함 [XDebug] ; xdebug*.dll 파일 경로 zend_extension=C:/Dev/php-7.2.10/ext/php_xdebug-2.6.1-7.2-vc15-x86_64.dll xdebug.remote_host=127.0.0..

프로그래밍/PHP 2018.10.11

nginx + PHP installation (for windows 10)

nginx 다운로드 및 압축 풀기 ; v1.15.5php 다운로드 및 압축 풀기 ; v7.2.10php.ini 설정 파일 생성하기 ; 압축을 해제한 C:\Dev\php-7.2.10 폴더의 "php.ini-development" 파일을 "php.ini" 파일로 복사php-cgi 실행 C:\Dev\php-7.2.10>start php-cgi.exe -b 127.0.0.1:9000 nginx.conf 파일 수정 ; php 연동을 위한 설정 # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { root html; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.ph..

프로그래밍/PHP 2018.10.10
728x90