네임스페이스(name space)가 있을때 include 하여 객체 사용하는 방법
패키지 형태로 관리를 하거나 다른 여러가지 장치들을 필요에 따라 다르게 사용하게 될때면 모를까 일반적으로는 사용하지 않아도 됩니다.
규모가 커지게 되면 쓰지 말라고 해도 이런것 없나하고 찾는것중 하나 일 수 있습니다.
적은 규모에선 필요하지 않지만 알고는 있어야 하는 것중 하나 입니다.
다음과 같이 별도의 클래스 파일이 하나 있는경우에 대한 예제 입니다.
<?php
namespace MyProject;
class MyClass {
public function __construct() {
echo "MyClass 객체가 생성되었습니다.";
}
}
위와 같이 네임스페이스가 있는 경우는 다음과 같이 2가지 방법으로 사용이 가능 합니다.
include('MyClass.php');
// 방법1
use MyProject\MyClass;
$object = new MyClass();
// 방법2
$object = new MyProject\MyClass();
MyProject를 지정해 줘야 하는 것은 동일 합니다.
다만 use를 사용할 경우 상단에 사용 할 것들을 나열해 주기 때문에 무엇을 사용하고 있는지 알 수 있는 장점이 있을 수 있습니다.
위 형태는 오토로드를 사용해 보면 어떻게 찾아 들어오는지 알 수 있는데요. 디렉토리 형태 입니다. 즉 클래스 파일을 그렇게 해야 된다는 의미 입니다.
오토로드에서 물론 앞쪽 디렉토리에 해당하는 부분을 삭제도 가능하게 제어는 할 수 있습니다.
* 네임스페이스의 다른 예제
