웹해킹 스터디

클래스 로딩과 네임스페이스 (namespace)

토픽 웹해킹 스터디 > PHP

수업소개

여기서는 클래스의 정의부분과 사용부분을 분리해서 클래스를 쉽게 사용할 수 있도록 하는 방법에 대해서 알아봅니다. 

수업

소개

 autoloading

namespace

 
 

 코드

autoload/greeting/en/Hi.php

<?php
namespace greeting\en;
class Hi{
  function __construct(){
    echo '<h1>hi</h1>';
  }
}
?>

autoload/greeting/ko/Hi.php

<?php
namespace greeting\ko;
class Hi{
  function __construct(){
    echo '<h1>안녕</h1>';
  }
}
?>

autoload/main.php

<?php
require_once 'autoload.php';
use \greeting\en\Hi as HiEn;
use \greeting\ko\Hi as HiKo;
new HiEn();
new HiKo();

댓글

댓글 본문
  1. 24.01.05 done
  2. 드림보이
    2022.01.23. 클래스 로딩과 네임스페이스 (namespace) 파트 수강완료
  3. jeisyoon
    2021.08.10 Autoload & Namespace - OK
  4. 미댈
    두번째 영상에서

    use \greeting\en, \greeting\ko;
    new \en\Hi();
    new \ko\Hi();
    위 방식은 이제 안되나 봅니다.. 에러뜨네요
    as 별칭 넣어서만 사용하도록 변경되었나 보네요
  5. 키썬
    1번 영상에 있는 예제대로 했는데 hi 텍스트는 나오는데 아래에
    Fatal error: Uncaught Error: Class 'Hi' not found in ~ 시작하는 에러가 떠요.
    require_once가 한번만 클래스를 로딩해서 클래스의 결과를 출력해주는 기능을 가지고 있다면
    new Hi(); 를 왜 쓰신건지 , 그리고 이고잉님 강좌에서는 왜 에러가 안뜨는건지 궁금합니다.
    2번 영상 예제대로 해도 new Hi();때문에 같은 에러가 나는데 왜 저만 이런 에러가 나타나는건지;
  6. 고마워요
  7. 이수민
    좋은 강의 진심으로 감사드립니다^^
  8. 김민주
    spl_autoloader_register 설명은 정말 무릎을 탁쳤습니다!
  9. orez
    감사합니다. 어렵지만, 재밌습니다.!
  10. 폭스킴
    autoload.php 소스코드 첨부가 빠졌어요~