네임 스페이스는 네임 스페이스 키워드로 시작한 다음 아래와 같이 네임 스페이스 이름으로 시작합니다.
namespace MyNamespace;
이런 식으로 다른 클래스를 다른 네임 스페이스에 배치하여 조직과 코드의 유지 보수 가능성을 향상시킬 수 있습니다.
프로젝트가 있고 프로젝트의 파일 구조가 다음과 같습니다.
- project
- src
- MyNamespace
- MyClass.php
myclass.php 에서는 myclass 클래스를 정의합니다. 클래스를 MyNamespace 네임 스페이스와 연결하려면 myclass.php 파일의 시작 부분에서 다음과 같이 네임 스페이스 문을 추가해야합니다.
namespace MyNamespace;
class MyClass {
// 클래스 구현
}
이런 식으로 MyClass 클래스는 MyNamespace 네임 스페이스에 속합니다.
다른 PHP 파일에서는 사용 명령문을 통해 네임 스페이스를 소개 한 다음이 클래스를 사용할 수 있습니다.
use MyNamespace\MyClass;
$object = new MyClass();
프로젝트 디렉토리 구조가 다음과 같습니다.
- project
- src
- MyNamespace
- MyClass.php
- SubNamespace
- MySubClass.php
myclass.php 에서는 MyNamespace 네임 스페이스에서 MyClass 클래스를 정의합니다. 그리고 mysubclass.php 에서는 mynamespace \ subnamespace 네임 스페이스에서 mysubclass 클래스를 정의합니다.
다른 PHP 파일에서는 다음과 같은 방법 으로이 두 클래스를 소개 할 수 있습니다.
use MyNamespace\MyClass;
use MyNamespace\SubNamespace\MySubClass;
$myClass = new MyClass();
$mySubClass = new MySubClass();
이러한 방식으로 PHP 코드의 클래스 간의 계층 적 관계를 명확하게 볼 수있을뿐만 아니라 파일 시스템에서 해당 파일을 정확하게 찾을 수 있습니다.
네임 스페이스를 합리적으로 사용하면 프로젝트 코드 구조가 더 명확 해지고 개발 중 혼란을 줄일 수 있습니다. 관련 클래스 및 기능 모듈을 해당 네임 스페이스로 구성하면 코드 품질을 향상시킬뿐만 아니라 개발 팀이보다 효율적으로 협력하는 데 도움이됩니다.
프로젝트 구조 :
- project
- src
- MyNamespace
- MyClass.php
- SubNamespace
- MySubClass.php
- index.php
myclass.php 파일 컨텐츠 :
<?php
namespace MyNamespace;
class MyClass {
public function sayHello() {
echo "Hello from MyClass!";
}
}
mysubclass.php 파일 컨텐츠 :
<?php
namespace MyNamespace\SubNamespace;
class MySubClass {
public function sayHello() {
echo "Hello from MySubClass!";
}
}
index.php 파일의 내용 :
<?php
require_once 'src/MyNamespace/MyClass.php';
require_once 'src/MyNamespace/SubNamespace/MySubClass.php';
use MyNamespace\MyClass;
use MyNamespace\SubNamespace\MySubClass;
$myClass = new MyClass();
$myClass->sayHello();
$mySubClass = new MySubClass();
$mySubClass->sayHello();
index.php 파일을 실행 한 후 출력은 다음과 같습니다.
Hello from MyClass!
Hello from MySubClass!