몽상실현개발주의

[생활코딩] 17.11 네임스페이스 본문

Language/php

[생활코딩] 17.11 네임스페이스

migrationArc 2021. 6. 8. 14:37

[생활코딩] 17.11 네임스페이스

생활코딩 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 에서 간략하게 처리

 

 

 


이 글의 모든 사진과 내용의 출처는 생활코딩에 있음을 알려드립니다.

http://www.inflearn.com/course/%EC%83%9D%ED%99%9C%EC%BD%94%EB%94%A9-php-%EA%B0%95%EC%A2%8C/lecture/230?tab=note

 

생활코딩 - PHP 기본 A 부터 Z 까지 - 인프런 | 학습 페이지

지식을 나누면 반드시 나에게 돌아옵니다. 인프런을 통해 나의 지식에 가치를 부여하세요....

www.inflearn.com

 

 

Comments