PHP - 네임스페이스

코딩.talk

PHP - 네임스페이스

PHP 에는 네임스페이스가 존재합니다.

 

PHP 초창기부터 있던것은 아니지만 5.3버전이후부터 추가된 내용입니다.

 

PHP 3,4,5초기 시절 사용하다가 Java를 십수년 하는중에는 

기존에 하던 패턴만 사용했었죠

게다가 그누보드에서는 사용하지 않는 개념인 namespace 

라라벨 을 할때는 그냥 그러려니.. 하는 패턴대로만 사용했습니다.

 

그런데, 본격적으로 잘 이해를 해보고자  ModernPHP 를 다시 천천히 살펴봤습니다.

 

용어적으로 혼동이 있을수 있는 내용이지만

java의  package 와 유사한 개념으로 이해하는게 좋을것 같습니다.

똑같지는 않지만 범위를 지정하기에  적적한 그룹핑 개념으로 말입니다.

 

네임스페이스는 javascript에서도 필요하죠

 

그리고, 네임스페이스로 영역을 나누고 사용하게되는 것에는 보통 회사명칭이 들어갑니다.

 

namespace Company\Shop;

와 같이 명시하고

 

vendor 하위에

company 디렉토리와 

company 하위에 shop 디렉토리를 생성합니다.

그리고 그 하위에 Prod 디렉토리를 만들고

Prod.php  파일을만들어

class Prod {

}

내용을 1가지만 작성합니다.

 

이건 절대적으로 지켜야 하는 규칙은 아니고 권고적으로 지켜야하는 형태인 

PSR에 해당되는 내용입니다.

 

레거시 문법에 익숙한 개발자들에게는 더 생소할부분이고

Java를 사용하던 사람은 익숙하지 않을 내용이지만

 

위에서 언급한 package 와 비슷하다는것을 알수 있습니다.

 

사용하는 방식의 use 라는 명령어는

 

vendor하위의 경로를 불러들입니다.

 

자바는 컴파일되는 내용이 package형태로 .으로 구분하지만

php는 \로 구분되는 차이가 있고

 

사용할때 역시

Java 는 import 명령을 사용해서

import company.shop.prod;

와 같이 사용하듯

 

php에서는

use Company\Shop\Prod;

와 같이 사용하게 됩니다.

 

php로 namespace 와 use를 이용해서

 

클래스를 다양하게 생성후 활용

중복된 클래스명을 구분지어 사용하기 위한 방법으로 접근/이해 하는것이 

가장 효율적인 방법으로 보여집니다.

 

JavaScript에서 최근 사용되는

import 개념 역시 동일한 개념으로 이해할수있지 않을까 생각합니다.

 


, , , , , , , ,

0 Comments
Category
Facebook Twitter GooglePlus KakaoStory KakaoTalk NaverBand