>  기사  >  백엔드 개발  >  Yii 프레임워크 공식 가이드 시리즈 12 - 기본 지식: 경로 별칭 및 네임스페이스

Yii 프레임워크 공식 가이드 시리즈 12 - 기본 지식: 경로 별칭 및 네임스페이스

黄舟
黄舟원래의
2017-02-11 09:47:101471검색



경로 별칭은 Yii에서 널리 사용됩니다. 경로 별칭은 디렉터리나 파일의 경로와 연결됩니다. 널리 사용되는 네임스페이스 형식인

RootAlias.path.to.target

와 유사한 도트 구문을 사용하여 지정됩니다. 여기서 RootAlias은 기존 디렉터리의 별칭입니다.

YiiBase::getPathOfAlias()를 사용하면 별칭을 해당 경로로 변환할 수 있습니다. 예를 들어 system.web.CControlleryii/framework/web/CController로 번역됩니다.

YiiBase::setPathOfAlias()를 호출하여 새로운 루트 경로 별칭을 정의할 수 있습니다.

1. 루트 별칭

편의를 위해 Yii는 다음 루트 별칭을 미리 정의합니다.

  • system: Yii 프레임워크 디렉터리를 나타냅니다.

  • zii: Zii 라이브러리 디렉터리를 나타냅니다.

  • application: 애플리케이션의 기본 디렉터리를 나타냅니다.

  • : 항목 스크립트 파일이 있는 디렉터리를 나타냅니다. 이 별칭은 버전 1.0.3부터 유효합니다.

    webroot

  • : 모든 타사 확장이 포함된 디렉터리를 나타냅니다. 이 별칭은 버전 1.0.8부터 유효합니다.

    ext

  • 또한 애플리케이션이 모듈을 사용하는 경우 (Yii)는 각 모듈 ID에 대한 루트 별칭을 정의하여 해당 모듈의 루트 디렉터리를 가리킵니다. 이 기능은 버전 1.0.3부터 사용할 수 있습니다.

YiiBase::getPathOfAlias()를 사용하면 별칭을 해당 경로로 변환할 수 있습니다. 예를 들어

로 번역됩니다. system.web.CControlleryii/framework/web/CController2. 클래스 가져오기

별칭을 사용하면 클래스 정의를 쉽게 가져올 수 있습니다. 예를 들어 CController 클래스의 정의를 포함하려면 다음 코드를 호출할 수 있습니다.


Yii::import('system.web.CController');

import

을 따르는 방법

과 달리 더 효율적입니다. include 가져온 클래스 정의는 처음 참조될 때까지 실제로 포함되지 않습니다require. 동일한 네임스페이스를 여러 번 가져오는 것이 보다 훨씬 빠릅니다. include_oncerequire_once

팁:

Yii 프레임워크에서 정의된 클래스를 참조할 때 이를 가져오거나 포함할 필요가 없습니다. 모든 핵심 Yii 클래스를 미리 가져왔습니다.

클래스 맵 사용

Yii 버전 1.1.5부터 클래스 맵을 사용하여 사용자 정의 클래스를 미리 가져올 수 있습니다. 메커니즘 Yii 내장 클래스

에서 사용하는 방법이기도 합니다. 즉시 가져오기 메커니즘은 파일을 명시적으로 가져오거나 포함하지 않고도 Yii 애플리케이션 어디에서나 사용할 수 있습니다. 이 기능은 Yii 위에 구축된 프레임워크나 라이브러리에 유용합니다. 미리 가져오기 기능을 사용하려면 CWebApplication::run()이 실행되기 전에 다음 코드를 실행하세요.


Yii::$classMap=array(
    'ClassName1' => 'path/to/ClassName1.php',
    'ClassName2' => 'path/to/ClassName2.php',
    ......
);

3. 디렉터리 가져오기

다음 구문을 사용하여 전체 디렉터리를 가져올 수도 있으므로 필요할 때 이 디렉터리의 클래스 파일이 자동으로 포함됩니다.


Yii::import('system.web.*');

가져오기 외에도 별칭은 다른 여러 위치의 클래스를 가리킵니다. 예를 들어 경로 별칭을 Yii::createComponent()에 전달하여 해당 클래스의 인스턴스를 만들 수 있습니다. 클래스 파일이 이전에 포함된 적이 없더라도 마찬가지입니다.

4. 네임스페이스

경로 별칭과 네임스페이스를 혼동하지 마세요. 네임스페이스는 클래스 이름이 서로 구별될 수 있도록 논리적으로 조합한 것입니다. 같은 이름. 경로 별칭은 클래스 파일이나 디렉터리를 가리키는 데 사용됩니다. 경로 별칭은 네임스페이스와 충돌하지 않습니다.

팁:

버전 5.3.0 이전의 PHP는 기본적으로 네임스페이스를 지원하지 않으므로 이름은 같지만 정의가 다른 클래스의 두 인스턴스를 생성할 수 없습니다. 이러한 이유로 모든 Yii 프레임워크 클래스에는 사용자 정의 클래스와 구별할 수 있도록 문자 'C'('클래스'를 의미)가 접두어로 붙습니다. 접두사 'C'는 Yii 프레임워크용으로만 예약하고 사용자 정의 클래스에는 다른 문자를 접두어로 붙이는 것이 좋습니다.

5. 네임스페이스를 사용하는 클래스

네임스페이스를 사용하는 클래스는 비전역 네임스페이스에 선언된 클래스를 의미합니다. 예를 들어

클래스는

네임스페이스 아래의 클래스입니다. 네임스페이스를 사용하려면 PHP 5.3.0 이상이 필요합니다. applicationcomponentsGoogleMapapplicationcomponents 1.1.5부터는 명시적으로 네임스페이스를 도입하지 않고도 네임스페이스가 포함된 클래스를 사용할 수 있습니다. 예를 들어 가져온 경로를 처리할 필요 없이

인스턴스를 생성하여 Yii의 자동 가져오기 메커니즘을 향상시킬 수 있습니다.

네임스페이스를 사용하여 클래스를 자동으로 가져오려면 네임스페이스 형식이 경로 별칭 과 유사해야 합니다. 예를 들어 applicationcomponentsGoogleMap 클래스에 해당하는 경로는 application.components.GoogleMap 별칭과 일치해야 합니다.

위는 Yii 프레임워크 공식 가이드 시리즈 12 - 기본 지식: 경로 별칭 및 네임스페이스입니다. 더 많은 관련 내용을 보려면 PHP 중국어 웹사이트(www.php.cn)를 참고하세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.