PHP 네임스페이스

2066 단어 phptutorial

네임스페이스



PHP 네임스페이스는 관련 클래스, 인터페이스, 함수 및 상수를 그룹화하는 방법을 제공합니다.

네임스페이스:
  • 기능에 따라 클래스를 더 잘 구성하고 그룹화하는 방법을 제공합니다.
  • 둘 이상의 클래스에 동일한 이름을 사용할 수 있습니다.

  • 예를 들어 루트 폴더에 여러 폴더가 있다고 가정해 보겠습니다. 이 폴더 각각에는 특정 로그인이 포함된 index.php 파일이 있습니다. 구체적인 예로 index.php 파일은 디렉토리/home/bazeng/home/other 모두에 존재할 수 있지만, index.php의 두 복사본은 같은 디렉토리에 공존할 수 없습니다. 또한 /home/bazeng 디렉토리 외부의 index.php 파일에 액세스하려면 디렉토리 구분자를 사용하여 파일 이름 앞에 디렉토리 이름을 추가하여 /home/bazeng/index.php 를 가져와야 합니다.

    PHP 세계에서 네임스페이스는 두 가지 문제를 해결하도록 설계되었습니다.
  • 생성한 코드와 내부 PHP 클래스/함수/상수 또는 타사 클래스/함수/상수 간의 이름 충돌.
  • 첫 번째 문제를 완화하고 소스 코드의 가독성을 개선하기 위해 설계된 Extra_Long_Names의 별칭(또는 단축) 기능.

  • 네임스페이스는 클래스의 최상위 섹션에서 선언됩니다. 네임스페이스 이름은 대소문자를 구분하지 않습니다. 실용적인 목적을 위해 네임스페이스라는 폴더를 만들고 내부에 folder라는 Car를 만들고 index.php를 만들고 아래 코드를 복사합니다.

    <?php
    namespace Car;
    
    class Sedan{
       public model;
       public function __construct($model){
         $this->model = $model
       }
       public function getModel(){
         echo $this-> model
       }
    }
    class Lorry{
       public model;
       public function __construct($model){
         $this->model = $model
       }
       public function getModel(){
         echo $this-> model
       }
    }
    
    
    


    루트 폴더 네임스페이스로 돌아가서 index.php 파일을 만들고 다음 코드를 복사합니다.

    <?php
    namespace Car;
    require "Car/index.php";
    $sedan = new Sedan("Premio");
    $lorry = new Lorry("Fuso");
    
    $sedan->getModel();
    echo "\n";
    $lorry->getModel();
    
    


    로컬 서버와 브라우저의 호스트는 네임스페이스 폴더(예: localhost/namespaces )로 이동합니다. 이것을 복제할 수도 있습니다repository.

    작성하기 쉽도록 네임스페이스나 클래스에 별칭을 지정하는 것이 유용할 수 있습니다. 이것은 use 키워드로 수행됩니다.

    use Car as C;
    $car = new C();
    

    좋은 웹페이지 즐겨찾기