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는 컴포넌트 기반 프레임워크라고 주장합니다.
yiibaseComponent
yiibaseObject
에서 상속되는 Component는 Object의 속성 메서드를 오버로드하고 이벤트와 동작도 추가합니다.
오버로드로 인해 이벤트와 동작이 추가되므로 Component의 성능은 Object에 비해 약간 떨어집니다.
객체 구성
Yii의 객체 구성 방식이 통일되어 있습니다. 모든 객체의 구성은 Object
의 __construct()
을 통해 구성됩니다. 구성의 핵심은 배열을 구성하여 속성을 구성하는 Yii::configure()
에 있습니다.
Q: 구성이 다차원 배열이면 어떻게 되나요?
Yii는
yiidiServiceLocator
:setComponents
에서 이 배열의 특정 처리를 구현합니다.
요약
yiibaseObject::__construct()
을 보면 Component 속성 로딩을 포함한 모든 객체가 4단계(처음 3단계는 한 번에 완료)로 구성되어 있음을 알 수 있습니다. ).
사전 초기화: 기본 정의는 Property
Yii::configure()
로 구성 배열을 로드하고 Property 를 재정의합니다. 초기화 후:
init()
의 실행클래스 메소드 호출 단계.
참고
http://www.digpage.com/
위 내용은 내용의 측면을 포함하여 Yii 소스코드 해석-속성을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

핫 AI 도구

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

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

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

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

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

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

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

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

뜨거운 주제









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

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

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

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

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

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

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

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