>  기사  >  php教程  >  Yii 프레임워크 분석(6) - Yii 별칭 관리 및 객체 생성 관리

Yii 프레임워크 분석(6) - Yii 별칭 관리 및 객체 생성 관리

黄舟
黄舟원래의
2016-12-27 11:21:211111검색

YiiBase 클래스는 YII 프레임워크 작동을 위한 공통 기본 기능인 별칭 관리 및 객체 생성 관리를 제공합니다.

PHP 개체를 생성할 때 먼저 이 클래스의 정의 파일을 포함시킨 다음 개체를 새로 만들어야 합니다. 서로 다른 환경(개발 환경/테스트 환경/온라인 환경)에서는 Apache의 웹루트 경로 구성이 다를 수 있으므로 이 클래스 정의 파일의 전체 경로가 다를 수 있습니다. Yii 프레임워크는 별칭 관리를 통해 이 문제를 해결합니다. YiiBase.질문입니다.

객체를 생성할 때 해당 클래스의 정의를 가져와야 하는 경우가 많습니다. include(), include_once(), require(), require_once(), set_include_path() 5가지 함수를 사용해야 하는 경우가 많습니다. . Yii는 YiiBase::import()를 사용하여 이 문제를 균일하게 해결합니다. 다음 그림은 YiiBase에서 제공하는 "별칭 관리 및 개체 생성 관리"의 작동 원리를 설명합니다.

Yii 프레임워크 분석(6) - Yii 별칭 관리 및 객체 생성 관리

폴더에 파일을 할당하는 별칭 관리를 먼저 살펴보세요. (종종 모듈에 해당하는 폴더) 별칭을 만듭니다. Yii 프레임워크에서 이 별칭을 사용하여 폴더의 전체 경로를 바꿀 수 있습니다. 예: 시스템 별칭은 프레임워크/home/work/yii의 경로를 나타냅니다. /framework이므로 system을 사용할 수 있습니다. base.CApplication은 /home/work/yii/framework/base/CApplication.php 파일의 경로를 나타냅니다. 물론 Yii::setPathOfAlias를 통해 애플리케이션 레이어 코드에 별칭을 등록할 수도 있습니다.

일반적으로 참조 파일에는 절대 경로나 상대 경로를 사용합니다. 물론 두 경우 모두 단점이 있습니다. 절대 경로: 우리 코드가 테스트 환경이나 온라인 환경에 배포될 때 포함된 파일의 경로를 대량으로 수정해야 합니다. 상대 경로: 일부 모듈 폴더의 위치를 ​​조정(이름 변경)할 때 모든 상대 경로가 필요합니다. 수정됩니다. 별칭을 사용하는 방법에는 별칭을 등록할 때 Yii::setPathOfAlias()만 변경하면 됩니다. 이렇게 하면 폴더 변경으로 인한 코드 변경 사항을 한 곳에 집중시킬 수 있습니다.

가져오기 기능을 살펴보겠습니다. a. 해당 클래스의 개체를 만들 수 있도록 클래스 정의를 가져옵니다. b. 이 파일 아래의 모든 파일을 포함할 수 있도록 폴더를 추가합니다. 곧장. Yii::import는 include(), include_once(), require(), require_once(), set_include_path() 다섯 가지 함수를 통합한 것과 같습니다. 그리고 일반적으로 속도는 이러한 기능보다 빠릅니다. 물론 Yii::import는 경로 변경으로 인한 문제를 해결할 수 있는 alias 기능을 지원합니다.

마지막으로 객체 생성을 살펴보겠습니다. YII 프레임워크에서 객체를 생성하는 방법에는 2가지가 있습니다. 1. new 키워드를 사용합니다. 2. Yii::createComponent 메소드를 사용합니다.

객체를 생성하기 위해 new 키워드를 사용할 때 자동 로드는 다음 세 단계에 걸쳐 해당 클래스의 정의를 찾습니다. a. 프레임워크의 클래스인지 확인합니다(프레임워크의 모든 클래스와 전체 클래스). 이 클래스의 경로는 YiiBase의 멤버 변수에 저장됩니다. 2. 프레임워크가 아닌 클래스의 경우 객체를 생성할 때 먼저 이 클래스의 정의를 가져와야 합니다. 3. include_path 디렉토리에서 이 클래스 이름을 딴 PHP 스크립트를 찾으십시오. 개발할 때 이 파일이 포함된 폴더를 가져올 수 있도록 파일 이름과 일치하는 클래스 이름을 저장하십시오. 이 폴더의 모든 파일을 한 번 가져와야 합니다.

Yii::createComponent 메소드를 사용하여 객체를 생성할 때 new 키워드보다 더 많은 기능을 제공합니다. a. 이 클래스의 전체 경로 별칭을 통해 클래스의 위치와 클래스 이름을 지정합니다(클래스 이름은 파일 이름과 일치해야 합니다. 이 클래스를 가져오지 않은 경우 이 클래스의 정의는 전체 경로를 기반으로 자동으로 가져옵니다. 2. 생성된 개체의 멤버 변수에 값을 할당합니다. 즉, 아래 그림에서 설명한 것처럼 예전에는 3줄 이상의 코드를 작성해야 했지만 이제는 한 줄의 코드(적게 쓰기, 더 많이 하기)로 가능해졌습니다.

Yii 프레임워크 분석(6) - Yii 별칭 관리 및 객체 생성 관리

위는 Yii 프레임워크 분석(6) - Yii의 별칭 관리 및 객체 생성 관리에 대한 자세한 내용은 PHP 중국어 홈페이지(www. php.cn)!


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