공부/PHP 8

Codeigniter 4! 새로운 기능과 특징

처음 php로 웹 개발을 하였고 codeigniter3를 사용하였다. codeigniter4가 RC버전이 나올 때부터 codeigniter4를 이용하였다. codeigniter3와 4의 차이점 4의 장점 및 특징과 느낀 점을 잊기 전에 정리하려고 한다. 인스턴스 생성 방법 가장 처음 눈에 크게 띄는 차이점이다. codeigniter 4부터 네임스페이스를 사용하게 되고 컴포넌트들을 불러오는데 큰 차이가 있다. 기존에는 싱글톤으로 인스턴스를 생성하여 사용하던 방식과는 많이 다르다. // codeigniter 3 $this->load->library("message"); $this->message->action(); $this->load->model("user"); $user = $this->user->get..

공부/PHP 2020.12.02

PHP 8.0 출시! 새로운 기능 알아보기

php 8.0 버전이 정식 릴리즈 되었다. php 8.0 버전으로 큰 변화들에 대해서 몇가지만 간단하게 정리해 두었다. 1. JIT just in time 컴파일로 인하여 속도 향상이 예상된다. 간단하게 설명하면 런타임 중에 코드를 파싱하여 반복적인 작업의 성능을 향상하는 것이라고 한다. 2. Union types 자료형을 명시 할 때 다중타입이 가능해진다. nullable도 ? 혹은 |null로 표기 할 수 있다. 두 경우 모두 자바에선 불가능한 경우이다. (대신 옵셔널이나 제네렉으로 타입을 동적으로 사용하거나 null을 컨트롤 하는 방법이 있다) public function foo(Foo|Bar $input): int|float; public function foo(Foo|null $foo): voi..

공부/PHP 2020.11.29

내가 만든 PHP composer package를 packgist.org 에 등록하기

php에서는 패키지간 의존성 관리를 위한 도구를 composer라고 한다. 필요한 패키지를 composer를 통해 설치하고 사용할 수 있다. 패키지를 packgist.org에 등록을 하게 되면 아래와 같은 명령어로 설치가 가능하다. composer {package_name} install 직접 php package를 만들어 packgist.org에 등록하였다. 이 방법을 공유하고자 글을 쓴다. 참고로 java 라이브러리를 만들어 maven repository에도 등록하였는데 php에 비해 매우 복잡하다. 그 방법은 여기 링크를 통해 확인 가능하다. 그 방법은 간단하게 설명하면 패키지를 만들고 github에 업로드하고 packgist.org에 깃헙을 연동하면 끝이다. 매우 간단하지만 아래 조금더 자세하게 ..

공부/PHP 2020.07.27

[PHP] APCu 프로세스 간 자원 공유

APCu는 APC에서 opcode 캐시 부분만 제거된 모듈로 데이터를 공유 메모리에 저장하여 프로세스 간 데이터를 공유할 수 있는 기능을 제공한다. APC란 Alternative PHP Cache (APC) 정의 Alternative PHP Cache (APC)는 PHP를 위한 무료 opcode 캐시입니다. 그것의 목표는 PHP 중간 코드를 캐싱하고 최적화하기 위한 자유롭고 개방적이며 견고한 프레임 워크를 제공하는 것입니다. php manual unhosted.tistory.com 멀티 프로세스를 동작하는 php특성상 프로세스가 종료될 때 자원이 해제되어 자원을 공유하기 위해서는 DB형태로 저장해야 된다고 생각하였으나, APCu를 이용하여 프로세스 간 자원 공유를 사용할 수 있다는 것을 알게 되었다. 실..

공부/PHP 2020.07.16

Alternative PHP Cache (APC)

정의 Alternative PHP Cache (APC)는 PHP를 위한 무료 opcode 캐시입니다. 그것의 목표는 PHP 중간 코드를 캐싱하고 최적화하기 위한 자유롭고 개방적이며 견고한 프레임 워크를 제공하는 것입니다. php manual에는 아래와 같은 경고 문구가 나온다. 현재는 개발이 중단되었으며 opcode 캐시 기능이 제외되고 데이터 스토어 기능만 지원하는 APCu로 대체되었다. APCu를 사용하여 프로세스 간 데이터 공유를 할 수 있게 되었는데. 아래 링크에 자세하게 설명되어있다. unhosted.tistory.com/39 [PHP] APCu 프로세스 간 자원 공유 APCu는 APC에서 opcode 캐시 부분만 제거된 모듈로 데이터를 공유 메모리에 저장하여 프로세스 간 데이터를 공유할 수 있..

공부/PHP 2020.07.10

PHP에서 Closure로 Lazy loading 구현하기

spring jpa를 사용하면 간단하게 db에 있는 데이터를 객체로 받는다. 연관된 테이블도 어노테이션 하나만으로 JOIN이 가능하다. 또한 fetchType을 이용하여 즉시 조회할지 지연 조회할지 설정도 가능하다. 게시판 테이블 board_id name 1 공지 게시판 2 자유 게시판 게시글 테이블 post_id board_id title content 1 1 공지글 공지글 입니다. 2 1 공지사항 공지사항 입니다 3 2 자유글 자유글 입니다 위 테이블을 예로 들면 게시판 객체에는 멤버 변수로 게시판 아이디, 게시판 이름, 게시글(1:N)이 있을 것이다. 그래서 jpa를 사용하면 게시판 한번 조회 시 1:N으로 연결된 게시글도 모두 가져올 수 있다 하지만 여기서 게시판만 조회해서 사용하려는 경우도 게시..

공부/PHP 2020.05.29

php 파일(경로,데이터)로 mime_type 찾기

파일 경로로 mime type 찾기mime_content_type()string mime_content_type ( string $filename ) 파일 데이터로 mime type 찾기http://php.net/manual/en/function.finfo-buffer.php Procedural stylestring finfo_buffer ( resource $finfo , string $string = NULL [, int $options = FILEINFO_NONE [, resource $context = NULL ]] ) Object oriented stylepublic string finfo::buffer ( string $string = NULL [, int $options = FILEINFO_..

공부/PHP 2018.06.19
728x90
반응형