PHP

제네릭 없는 PHP 인터페이스

May 26, 2017 Code

PHP를 사용하면서 가장 아쉬운 부분은 인터페이스다. PHP는 인터페이스를 지원하고 있고 이 인터페이스를 활용한 타입 힌트, 의존성 주입 등 다양한 방식으로 적용 가능하다. 하지만 제네릭 타입이 존재하지 않아서 타입...

Satis로 PHP 패키지 리포지터리 만들기

March 17, 2017 Dev

PHP에서 Composer를 통해 사용할 수 있는 패키지 리포지터리 서비스인 Packagist는 오픈소스로 공개되어 있어서 필요하면 누구든지 받아 사용할 수 있게 되어 있다. 하지만 Solr이라든지 Redis라든지 요구하는 환경이 있어서 Packagist의...

레거시 PHP에서 모던 PHP로 – 뷰 분리하기

October 13, 2016 Code

흔히 모던 PHP라고 이야기하는 현대적인 PHP 개발 방식에 대해 많은 이야기가 있다. 새 방식을 사용하면 협의된 명세를 통해 코드 재사용성을 높이고 패키지를 통해 코드 간 의존성을 낮출 수...

PhpStorm 주요 단축키 10선

June 14, 2016 Dev

JetBrains: Development Tools for Professionals and Teams의 각종 IDE는 많은 고수 개발자들이 강력 추천하고 있다. 언어와 관계없이 거의 공통적으로 쓰이는 단축키이니 익혀두는 것이 좋을 것 같다. 주요 단축키...

라라벨은 시맨틱 버저닝을 사용하지 않는다

June 5, 2016 Code

최근에 라라벨 책을 저술하신 두 저자분 께서 라라벨이 마이너 업데이트 되었는데 예제 소스코드가 정상적으로 작동하지 않아서 고생하신 것을 본 적이 있습니다. 이와 관련하여 정광섭님이 이해할 수 없는 라라벨의...

떠나세요, PHP 개발자여. 아니면 잘하든가!

February 15, 2016 Dev

PHP 개발자는 그 태생부터 죄에 속한 것과 같이 업을 쌓고 산다. 아무리 좋은 디자인과 아키텍처, 방법론으로 무장하고 있더라도 그 죄성은 쉽게 씻겨지지 않는다. 어디서든 PHP 개발자라는 얘길 하면...

구석기 PHP와 현대적인 PHP 비교하기

December 15, 2015 Code

PHP는 언어적인 지원은 물론, 환경이나 커뮤니티도 계속 발전하고 있다. 최근 프레임워크 운용 그룹(Framework Interop Group, FIG)에서 제안하는 PSR 문서를 보면 알 수 있듯, 표준화된 라이브러리를 만들기 위해 라이브러리/패키지...

XECON 2015 Learning Laravel 발표자료

November 15, 2015 Blog

최근에 좋은 튜토리얼들이 쏟아져나와서 학습 전략이라는 말이 다소 무색해지긴 했지만 그래도 궁금해하시는 분들이 계실 수 있을 것 같아 발표자료를 공유해봅니다. Learning Laravel from Hyun-Seok Lee   Share

테스트하기 어려운 코드라는 6가지 신호

August 18, 2015 Blog

최근에 의존성 주입을 알게되어서 (신나서?) 마구마구 의존성을 주입하다보니 한 클래스를 생성하는데에 너무 많은 의존성을 주입하는 경우가 생기더군요. 가장 많은 건 13개까지… 그래서 과연 내가 잘하고 있는 것이 맞나...

ORM 좋네요 좋아

August 12, 2015 Blog

Eloquent ORM을 이용하여 아래의 데이터를 조회하기 위한 코드를 작성했습니다. A가 가진 모든 B들과 그 B들이 가진 모든 C들 중 A와 관련 있는 것만 추린 것들과 그 C들이 가진...

Do Not Brew Language: Installing Language by Homebrew Is NOT Clean

July 22, 2015 Blog

※ 이 글은 원본이 갱신되었습니다. 원본을 읽어주시면 감사하겠습니다.   소프트웨어 마에스트로를 처음 시작했을때의 일이다. 우리 팀은 Python 3.4를 사용했다. 나는 처음 맥북을 사고는 brew뽕에 취해서1 gcc와 Python 3...

PHP 7과 연관된 RFC 이야기

June 18, 2015 Blog

며칠 전에 PHP 7 alpha 첫 버전이 나왔다. 나는 호기심에 PHP의 feature들이 어떤 과정으로 결정되었는지 살짝만 찾아보았는데, PHP 7에 추가하자고 제안된 기능들을 몇가지 살펴보고, PHP의 의사결정 방식을 좀...

Laravel 컨트롤러 테스트 작성 요령

June 7, 2015 Blog

테스트를 작성할 때 무엇을 테스트 할 것인지를 결정하는 것이 참 어려운 것 같습니다. Jeffrey Way 의 조언을 따르니 컨트롤러 테스트 작성에 꽤 도움이 되네요. “Controller tests should verify...

PHP의 json_encode() 함수에서 JsonSerializable 활용하기

May 27, 2015 Blog

PHP에서 데이터를 json 문자열로 변환할 때 json_encode(mixed $value) 함수를 사용하게 된다. 이 함수를 이용해 개체도 변환할 때에도 활용할 수 있다. 기본적으로는 클래스에서 public인 프로퍼티에 대해서만 json으로 반환한다. protected나...

PHP 패키지 체크리스트

April 18, 2015 Blog

PHP Package Checklist의 번역 글이다. 패키지 개발을 하지 않고 있더라도 PHP 개발을 하고 있다면 충분히 염두해볼 만한 내용이 포함되어 있고 참고할 이야기가 많다. 패키지명을 현명하게 선택할 것 다른...

Micro-Framework, Lumen 살펴보기

April 17, 2015 Blog

Micro-framework의 전성기라고 할 만큼 다양한 환경과 언어로 프레임워크가 쏟아지고 있다. PHP에도 micro-framework가 많이 나와 있는데1 최근 Laravel에서 Lumen을 발표했다. 발표 자료에서는 symfony2 기반인 silex보다 1.9배 빠르다고 하는데 문법적으로는...

PHP 네임스페이스

April 15, 2015 Blog

PHP 5.3에서 새로운 기능으로 네임스페이스가 추가되었다. (= 이미 오래된 기능이다.) 많은 현대 언어는 이미 이 기능을 추가한지 오래지만 PHP는 조금 늦게 추가되었다. 최근에 개발되는 대다수의 PHP 라이브러리는 네임스페이스로...

OSX Yosemite(10.10) 에서 Apache & PHP 설정

January 5, 2015 Blog

Apache Version 확인 apachectl -v PHP Version 확인 php -v Apache 설정 ( virtual hosts ) sudo nano /etc/apache2/httpd.conf - 주석(“#”) 제거 LoadModule authn_core_module libexec/apache2/mod_authn_core.so LoadModule authz_host_module libexec/apache2/mod_authz_host.so Include...

Terminal에서 MAMP의 php 사용하기

January 2, 2015 Blog

요즘 대부분의 php 도구들이 콘솔에서 사용할 수 있도록 제공되고 있다. OSX에는 기본적으로 php가 설치되어 있고 별다른 설정이 없다면 이 php를 사용하게 된다. composer 같은 도구는 php 버전이나 모듈과는...

PHP 클래스 자동으로 불러오기 (Autoloading)

September 16, 2014 Blog

객체 지향 프로그래밍에 익숙한 개발자라면 하나의 파일에 하나의 클래스를 작성하는 방식에 익숙할 것이다. 다만 php는 다른 언어와 같이 라이브러리를 일괄적으로 불러오는 방법이 없어 위와 같은 접근 방법으로는 require...

PHP 5.6을 눈 앞에 둔 zb4 유저의 심경

August 4, 2014 Blog

진퇴양난 진심으로 답이 안선다. 홈페이지를 zb4로 짜놓고선 그냥 유지보수만 해왔더니 PHP 5.6이 코앞에 와있다. PHP 5.5부터 zb4에서 가장 많이 쓰이는 mysql_* 계통의 함수들이 모두 deprecated 되어버렸다. 아직 5.6...