PHP OOP의 네임스페이스 상대 경로
파일 index.php에서
다음과 같은 호출이 발생한다고 가정해 보겠습니다:
<?php
namespace Admin\Data;
new \Core\Controller;
?>
이미 알고 계시듯이, 클래스를 참조할 때 해당 네임스페이스 앞에 역슬래시를 붙여야 합니다. 사실 이것은 필수가 아닙니다. 이 슬래시를 작성하지 않으면 호출되는 네임스페이스는 현재 네임스페이스에 대해 상대적으로 계산됩니다. 예를 참고하세요:
<?php
namespace Admin\Data;
new Core\Controller; // \Admin\Data\Core\Controller와 동일함
?>
두 개의 클래스가 주어졌습니다:
<?php
namespace Modules\Shop\Core;
class Cart
{
}
?>
<?php
namespace Modules\Shop;
class UserCart extends \Modules\Shop\Core\Cart
{
}
?>
우리 클래스들의 네임스페이스가 일부 공통 부분을 공유한다는 점을 고려하여, 클래스 상속을 위한 코드를 간소화하세요.
두 개의 클래스가 주어졌습니다:
<?php
namespace Core\Data;
class Controller
{
}
?>
<?php
namespace Core\Data;
class Model
{
}
?>
다음은 파일 index.php에서
이 클래스들의 객체를 생성하는 방법입니다:
<?php
namespace Core\Data;
$controller = new \Core\Data\Controller;
$model = new \Core\Data\Model;
?>
객체가 생성되는 네임스페이스를 고려하여, 객체 생성을 위한 코드를 간소화하세요.