2013-09-21 3 views
0

PHP에서 네임 스페이스를 사용하는 방법을 알아 내려고하고 있습니다. 나는 그것을 사용하는 방법에 대해 읽고 있었고 어떤 이유로 그것을 작동시킬 수 없다. 내가 Applications/Database/Classes 파일 이름에 저장 한 두 개의 파일 하나가 DatabaseConnection.php 인이 루트 디렉토리에있는 다른 나는 다음과 같은 코드를 가지고있는 DatabaseConnection.php 파일 내부에 DB.php라고 :PHP 네임 스페이스를 올바르게 사용하기

<?php 
    function hello() 
    { 
     echo "hello"; 
    } 
?> 

을 이쪽 db.php를 파일 내용이다 :

<?php 
namespace Applications\Database\Classes; 
ini_set('display_errors', true); 
hello(); 
?> 

는 어쩌면 나는 완전히 그것을 제대로 사용하는 방법을 놓치고하지만 설정하면 네임 스페이스는 include 또는 require를 사용하는 것과 그 같은입니까? 나는 그것을 어떻게 사용하는지 완전히 오해하고있을 수도있다. 나는 OOP에 익숙하지 않고 OOP를 배우기 시작할 때까지 네임 스페이스에 대해 들어 본 적이 없다. 누군가 내가 잘못한 것을 지적 할 수 있습니까? PHP (PSR-0)에 자동 로딩을 사용하는 방법

+0

저는 Trekies를 알고 있습니다 ... 거의 같은 방식으로 spacemames를 사용합니다.) – djot

+0

별 트레킹을 한 번도 경험하지 못했습니다 – Yamaha32088

+2

네임 스페이스가 자동으로 파일을 필요로하지 않습니다. 그러나 [autoloader] (http://php.net/manual/en/language.oop5.autoload.php) – Rob

답변

1

네임 스페이스는 구성 요소를 분할하고 가독성에 도움을 줄 수 있도록 당신의 코드를 주관한다.

Animals.Dogs.Misc 
Animals.Cats.Misc 

Misc 클래스 :이 또한 아래와 같은 잠재적 인 충돌에 도움이

Animals.Dogs.Pittbull 
Animals.Dogs.Dashund 

예를 들어 I 클래스 Pittbull 내가 조직과 같이 네임 스페이스에 배치 할 수 있습니다 다른 Dashund이있는 경우 이 인스턴스에 두 번 존재하지만 충돌하는 대신에 Misc을 사용하면 두 클래스에 동일한 클래스 이름을 사용할 수 있고 (내부적으로 다른 속성과 메서드를 가질 수 있습니다) 원하는 충돌이 없습니다 사용.

require 키워드는 완전히 다른 개념으로 실행 파일에 실제 파일을로드하는 데 사용됩니다.

관련 문제