백엔드 개발 PHP 튜토리얼 Yii 소스 코드 해석 - 속성

Yii 소스 코드 해석 - 속성

Jul 29, 2016 am 08:58 AM
component object public title yii

Yii 기본

속성 속성

속성은 클래스의 상태를 나타내는 데 사용됩니다. 액세스 관점에서 속성과 멤버 변수 간에는 차이가 없습니다. 그런데 멤버 변수는 클래스의 구조적 구성 측면에서 개념이고, 속성은 클래스의 기능적 논리 측면에서 개념입니다.

Q: 속성과 멤버 변수의 차이점은 무엇인가요?

  • 멤버 변수는 클래스의 구조를 반영하는 "내부" 개념입니다. 속성은 클래스의 논리적 의미를 반영하는 "외부" 개념입니다.

  • 멤버 변수에는 읽기 및 쓰기 권한 제어가 없지만 속성은 읽기 전용 또는 쓰기 전용으로 지정하거나 읽기 및 쓰기 모두로 지정할 수 있습니다.

  • 구성원 변수는 읽기에 대한 후처리를 수행하지 않으며 쓰기에 대한 전처리를 수행하지 않지만 속성은 수행합니다.

  • 공용 멤버 변수는 사전 또는 사후 처리 없이 읽기 및 쓰기가 가능한 속성으로 간주될 수 있습니다. 전용 멤버 변수는 외부에서 볼 수 없고 속성의 "외부" 특성과 일치하지 않으므로 속성으로 간주할 수 없습니다.

  • 대부분의 경우 속성은 하나 이상의 멤버 변수로 표시되지만 NAND 게이트의 출력 속성과 같은 속성과 멤버 변수 간에는 반드시 일치하는 것은 없습니다. 이에 해당하는 소위 $output 멤버 변수가 없습니다.

yiibaseObject

속성 구현

<code>class foo extends yii\base\object{
    private $_title;
    
    public function setTitle($title){
        $this->_title = trim($title);
    }
    
    public function getTitle(){
        return $this->_title;
    }
}</code>
로그인 후 복사

속성을 ​​클래스에 사용할 수 있습니다. 더 나은 캡슐화, 구성요소 입력 및 멤버 변수의 통합 관리를 달성합니다.

그러나 __get(), __set()은 모든 멤버 변수를 순회하며 일치하는 멤버 변수가 없을 때만 호출됩니다. 효율성은 본질적으로 멤버 변수를 사용하는 것보다 낮습니다. 데이터 구조, 데이터 컬렉션 등이 표현되고 읽기/쓰기 제어가 필요하지 않은 일부 간단한 상황에서는 멤버 변수를 속성으로 간주하여 효율성을 높일 수 있습니다.

__get() __set() 자동 호출 타이밍은 존재하지 않는 멤버 변수에 액세스할 때만 발생합니다. 따라서 멤버변수 public $title을 정의하면 getTitle(), setTitle()을 정의하더라도 호출되지 않는다. $post->title일 때 공개 $title을 직접 가리킬 것이기 때문입니다.

PHP는 클래스 메소드에 대해 대소문자를 구분하지 않습니다. 즉, 속성 이름에 대해서도 대소문자를 구분하지 않습니다.

__get() __set()은 모두 공개이며 static의 메소드는 사용하기 쉽지 않습니다.

컴포넌트

Yii는 컴포넌트 기반 프레임워크라고 주장합니다.

yiibaseComponentyiibaseObject에서 상속되는 Component는 Object의 속성 메서드를 오버로드하고 이벤트와 동작도 추가합니다.

오버로드로 인해 이벤트와 동작이 추가되므로 Component의 성능은 Object에 비해 약간 떨어집니다.

객체 구성

Yii의 객체 구성 방식이 통일되어 있습니다. 모든 객체의 구성은 Object__construct()을 통해 구성됩니다. 구성의 핵심은 배열을 구성하여 속성을 구성하는 Yii::configure()에 있습니다.

Q: 구성이 다차원 배열이면 어떻게 되나요?

Yii는 yiidiServiceLocator: setComponents에서 이 배열의 특정 처리를 구현합니다.

요약

yiibaseObject::__construct()을 보면 Component 속성 로딩을 포함한 모든 객체가 4단계(처음 3단계는 한 번에 완료)로 구성되어 있음을 알 수 있습니다. ).

  1. 사전 초기화: 기본 정의는 Property

  2. Yii::configure()로 구성 배열을 로드하고 Property

  3. 를 재정의합니다.
  4. 초기화 후: init()의 실행

  5. 클래스 메소드 호출 단계.

참고

  1. http://www.digpage.com/

위 내용은 내용의 측면을 포함하여 Yii 소스코드 해석-속성을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
2 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

iOS 개발자 버전과 공개 버전의 차이점은 무엇인가요? iOS 개발자 버전과 공개 버전의 차이점은 무엇인가요? Mar 01, 2024 pm 12:55 PM

매년 Apple이 iOS 및 macOS의 새로운 주요 버전을 출시하기 전에 사용자는 몇 달 전에 베타 버전을 다운로드하여 먼저 경험할 수 있습니다. 소프트웨어는 대중과 개발자 모두가 사용하기 때문에 Apple은 개발자 베타 버전의 공개 베타 버전인 개발자 버전과 공개 버전을 모두 출시했습니다. iOS 개발자 버전과 공개 버전의 차이점은 무엇인가요? 말 그대로 개발자 버전은 개발자 베타 버전이고, 퍼블릭 버전은 퍼블릭 베타 버전이다. 개발자 버전과 공개 버전은 서로 다른 대상을 대상으로 합니다. 개발자 버전은 개발자가 테스트하기 위해 Apple에서 사용합니다. 다운로드하고 업그레이드하려면 Apple 개발자 계정이 필요합니다.

vue3가 DefineAsyncComponent 및 구성 요소 태그를 사용하여 동적 렌더링 구성 요소를 구현하는 방법 vue3가 DefineAsyncComponent 및 구성 요소 태그를 사용하여 동적 렌더링 구성 요소를 구현하는 방법 May 12, 2023 pm 05:55 PM

1. 구성 요소의 기본 동적 도입: 간단한 동적 도입은 프런트 엔드가 어떤 구성 요소를 도입할지 알고 상위 구성 요소에 여러 구성 요소를 도입하지만 특정 조건이 충족된 후에는 렌더링하지 않음을 의미합니다. 위치. 지정된 구성 요소. import{reactive,ref,shallowReactive,onActivated,defineAsyncComponent,}from'vue';constcustomModal=defineAsyncComponent(()=>import('./modal/CustomM

면접관: @Configuration과 @Component의 차이점 면접관: @Configuration과 @Component의 차이점 Aug 15, 2023 pm 04:29 PM

@Configuration 클래스에서 @Bean 주석이 달린 메서드를 호출하면 동일한 예제가 반환됩니다. @Component 클래스에서 @Bean 주석이 달린 메서드를 호출하면 새 인스턴스가 반환됩니다.

제목이 무슨 뜻이야? 제목이 무슨 뜻이야? Aug 04, 2023 am 11:18 AM

제목은 웹 페이지의 제목을 정의하는 의미로, 태그 내에 위치하며 브라우저의 제목 표시줄에 표시되는 텍스트입니다. 제목은 웹 페이지의 검색 엔진 최적화 및 사용자 경험에 매우 중요합니다. HTML 웹 페이지를 작성할 때 더 많은 사용자가 클릭하고 탐색하도록 유도하려면 관련 키워드와 매력적인 설명을 사용하여 제목 요소를 정의하는 데 주의를 기울여야 합니다.

Vue에서 구성 요소 사용자 정의를 구현하기 위해 mixin, 확장, 구성 요소 및 기타 API를 사용하는 방법에 대한 팁 Vue에서 구성 요소 사용자 정의를 구현하기 위해 mixin, 확장, 구성 요소 및 기타 API를 사용하는 방법에 대한 팁 Jun 25, 2023 pm 03:28 PM

Vue.js는 구성 요소 사용자 정의를 위한 많은 API를 제공하는 인기 있는 프런트 엔드 프레임워크입니다. 이 기사에서는 Vue의 믹스인, 확장, 구성 요소 및 기타 API를 소개하여 구성 요소 사용자 정의 기술을 익히는 데 도움을 줍니다. Mixin Mixin은 Vue에서 컴포넌트 코드를 재사용하는 방법입니다. 이를 통해 이미 작성된 코드를 다른 구성 요소에 재사용할 수 있으므로 중복 코드를 작성할 필요성이 줄어듭니다. 예를 들어, 믹스인을 사용하여 여러 그룹을 결합할 수 있습니다.

PHP 프레임워크 Yii를 사용하여 고가용성 클라우드 백업 시스템을 개발하는 방법 PHP 프레임워크 Yii를 사용하여 고가용성 클라우드 백업 시스템을 개발하는 방법 Jun 27, 2023 am 09:04 AM

클라우드 컴퓨팅 기술이 지속적으로 발전하면서 데이터 백업은 모든 기업이 반드시 해야 할 일이 되었습니다. 이러한 맥락에서 가용성이 높은 클라우드 백업 시스템을 개발하는 것이 특히 중요합니다. PHP 프레임워크 Yii는 개발자가 고성능 웹 애플리케이션을 빠르게 구축하는 데 도움이 되는 강력한 프레임워크입니다. 다음은 Yii 프레임워크를 사용하여 고가용성 클라우드 백업 시스템을 개발하는 방법을 소개합니다. 데이터베이스 모델 설계 Yii 프레임워크에서 데이터베이스 모델은 매우 중요한 부분입니다. 데이터 백업 시스템에는 많은 테이블과 관계가 필요하기 때문에

Yii2 vs Phalcon: 그래픽 렌더링 애플리케이션 개발에 어떤 프레임워크가 더 좋나요? Yii2 vs Phalcon: 그래픽 렌더링 애플리케이션 개발에 어떤 프레임워크가 더 좋나요? Jun 19, 2023 am 08:09 AM

현재 정보화 시대에는 빅데이터, 인공지능, 클라우드 컴퓨팅 등의 기술이 주요 기업의 화두가 되었습니다. 이러한 기술들 중에서 고성능 그래픽 처리 기술로서 그래픽 카드 렌더링 기술이 점점 주목을 받고 있다. 그래픽 카드 렌더링 기술은 게임 개발, 영화 및 TV 특수 효과, 엔지니어링 모델링 및 기타 분야에서 널리 사용됩니다. 개발자에게 자신의 프로젝트에 적합한 프레임워크를 선택하는 것은 매우 중요한 결정입니다. 현재 언어 중에서 PHP는 Yii2, Ph와 같은 뛰어난 PHP 프레임워크 중 매우 역동적인 언어입니다.

PHP에서 Yii3 프레임워크를 사용하는 방법은 무엇입니까? PHP에서 Yii3 프레임워크를 사용하는 방법은 무엇입니까? May 31, 2023 pm 10:42 PM

인터넷이 계속 발전함에 따라 웹 애플리케이션 개발에 대한 수요도 점점 높아지고 있습니다. 개발자의 경우 애플리케이션 개발에는 개발 효율성을 향상시킬 수 있는 안정적이고 효율적이며 강력한 프레임워크가 필요합니다. Yii는 풍부한 기능과 우수한 성능을 제공하는 선도적인 고성능 PHP 프레임워크입니다. Yii3은 Yii2를 기반으로 성능과 코드 품질을 더욱 최적화하는 Yii 프레임워크의 차세대 버전입니다. 이번 글에서는 Yii3 프레임워크를 사용하여 PHP 애플리케이션을 개발하는 방법을 소개하겠습니다.

See all articles