Language/php
[생활코딩] 17.11 네임스페이스
migrationArc
2021. 6. 8. 14:37
생활코딩 php 강좌
17. PHP의 객체 지향 프로그래밍
17.11 네임스페이스
<?php
namespace ko;
class Hi
{
function __construct()
{
echo "<h1>안녕</h1>";
}
}
namespace en;
class Hi
{
function __construct()
{
echo "<h1>Hi</h1>";
}
}
new \en\Hi();
new \ko\Hi();
?>
// 안녕
// Hi
- namespace 로 같은 이름의 class 를 구분하여 사용 가능
<?php
namespace greeting\ko;
class Hi
{
function __construct()
{
echo "<h1>안녕</h1>";
}
}
namespace greeting\en;
class Hi
{
function __construct()
{
echo "<h1>Hi</h1>";
}
}
use \greeting\en\Hi as HiEn;
use \greeting\ko\Hi as HiKo;
new HiEn();
new HiKo();
// 안녕
// Hi
?>
- namespace greeting\en, namespace greeting\ko
- greeting 을 부모 namespace 로 지정
- namesapce 와 class 명까지 as 를 이용하여 단축어로 사용
// greeting/en/hi.php
<?php
namespace greeting\en;
class Hi
{
function __construct()
{
echo "<h1>Hi</h1>";
}
}
?>
// greeting/ko/hi.php
<?php
namespace greeting\ko;
class Hi
{
function __construct()
{
echo "<h1>안녕</h1>";
}
}
?>
// autoload.php
<?php
spl_autoload_register(
function($path){
$path = str_replace('\\', '/', $path);
$path = $path.".php";
var_dump($path);
require_once $path;
});
?>
// main.php
<?php
require_once 'autoload.php';
use \greeting\en\Hi as HiEn;
use \greeting\ko\Hi as HiKo;
new HiEn();
new HiKo();
?>
// string(18) "greeting/en/Hi.php"
// Hi
// string(18) "greeting/ko/Hi.php"
// 안녕
- autoloader 와 namespace 를 이용하여 객체별로 file 을 나누고, main.php 에서 간략하게 처리
이 글의 모든 사진과 내용의 출처는 생활코딩에 있음을 알려드립니다.
생활코딩 - PHP 기본 A 부터 Z 까지 - 인프런 | 학습 페이지
지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....
www.inflearn.com