update : 2015.11.03
php.shukuma.com

검색:
 
 
네임스페이스 개요

네임스페이스 개요

(PHP 5 >= 5.3.0)

네임스페이스란 무엇일까요? 넓은 의미로 볼 때 네임스페이스는 내용을 캡슐화 하는 방법중 하나입니다. 이것은 다양한 관점에서 추상적인 개념으로 볼 수 있습니다. 예를 들면 운영체제에서 디렉토리는 관련된 파일들의 그룹을 담당하고, 그 안에 있는 파일들의 네임스페이스 역할을 합니다. 구체적인 예로, 파일 foo.txt는 디렉토리/home/greg/home/other에 각각 존재 할 수 있습니다. 하지만, foo.txt라는 두개의 사본은 동일한 디렉토리에 동시에 존재할 수는 없습니다. 게다가 /home/greg 디렉토리 바깥에서 foo.txt 파일에 접근하려면, 디렉토리 구분자와 함께 파일 이름 앞에 디렉토리 이름을 붙여서 /home/greg/foo.txt 처럼 접근해야 합니다. 이와 같은 원칙은 프로그래밍 세계에서 네임스페이스로 확장됩니다.

In the PHP world, namespaces are designed to solve two problems that authors of libraries and applications encounter when creating re-usable code elements such as classes or functions:

  1. Name collisions between code you create, and internal PHP classes/functions/constants or third-party classes/functions/constants.
  2. Ability to alias (or shorten) Extra_Long_Names designed to alleviate the first problem, improving readability of source code.

PHP Namespaces provide a way in which to group related classes, interfaces, functions and constants. Here is an example of namespace syntax in PHP:

Example #1 Namespace syntax example

<?php
namespace my\name// see "Defining Namespaces" section

class MyClass {}
function 
myfunction() {}
const 
MYCONST 1;

$a = new MyClass;
$c = new \my\name\MyClass// see "Global Space" section

$a strlen('hi'); // see "Using namespaces: fallback to global
                   // function/constant" section

$d = namespace\MYCONST// see "namespace operator and __NAMESPACE__
                        // constant" section
$d __NAMESPACE__ '\MYCONST';
echo 
constant($d); // see "Namespaces and dynamic language features" section
?>

Note:

Namespace names PHP and php, and compound names starting with these names (like PHP\Classes) are reserved for internal language use and should not be used in the userspace code.