Yii源码解读-属性
Yii基础
属性 property
属性用于表征类的状态,从访问的形式上看,属性与成员变量没有区别。但是,成员变量是就类的结构构成而言的概念,而属性是就类的功能逻辑而言的概念
Q: 属性和成员变量有什么区别吗?
成员变量是一个“内”概念,反映的是类的结构构成。属性是一个“外”概念,反映的是类的逻辑意义。
成员变量没有读写权限控制,而属性可以指定为只读或只写,或可读可写。
成员变量不对读出作任何后处理,不对写入作任何预处理,而属性则可以。
public成员变量可以视为一个可读可写、没有任何预处理或后处理的属性。 而private成员变量由于外部不可见,与属性“外”的特性不相符,所以不能视为属性。
虽然大多数情况下,属性会由某个或某些成员变量来表示,但属性与成员变量没有必然的对应关系, 比如与非门的 output 属性,就没有一个所谓的 $output 成员变量与之对应。
由
yii\base\Object
提供了对属性的支持
属性的实现
<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 时,会直接指向该 public $title。
PHP对于类方法不区分大小写,即大小写不敏感,对属性名也是不区分大小写的。
__get() __set() 都是public的,
static
的方法统统不好使。
Component
Yii自称是基于组建的框架。
yii\base\Component
继承自yii\base\Object
,Component重载了Object中的属性方法,同时也加入了事件和行为。
由于重载加入了事件和行为,Component的性能会笔Object差一点。
Object的配置
Yii的对象配置方法是统一的。所有对象的配置都是通过Object
中的__construct()
来配置。配置的本质就在Yii::configure()
中,他通过配置数组,构建属性。
Q: 如果配置是多维的数组怎么办呢?
Yii在
yii\di\ServiceLocator
中实现了对这一数组的具体处理:setComponents
。
Summary
通过yii\base\Object::__construct()
,我们可以看到,所有对象,包括Component的属性的加载,均有4个阶段,(前三个阶段是一气呵成在一起的)。
预初始化:默认定义Property
Yii::configure()
来加载配置数组,覆盖Property后初始化:
init()
的执行类方法调用阶段。
参考
http://www.digpage.com/
以上就介绍了Yii源码解读-属性,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



Chaque année, avant qu'Apple ne publie une nouvelle version majeure d'iOS et de macOS, les utilisateurs peuvent télécharger la version bêta plusieurs mois à l'avance pour en faire l'expérience en premier. Étant donné que le logiciel est utilisé à la fois par le public et par les développeurs, Apple a lancé des versions développeur et publique, qui sont des versions bêta publiques des versions bêta développeur, pour les deux. Quelle est la différence entre la version développeur et la version publique d’iOS ? Littéralement parlant, la version développeur est une version bêta développeur et la version publique est une version bêta publique. La version développeur et la version publique ciblent des publics différents. La version développeur est utilisée par Apple pour les tests par les développeurs. Vous avez besoin d'un compte développeur Apple pour la télécharger et la mettre à niveau.

L’appel de la méthode annotée @Bean dans la classe @Configuration renvoie le même exemple ; l’appel de la méthode annotée @Bean dans la classe @Component renvoie une nouvelle instance.

1. Introduction dynamique de base des composants : une introduction dynamique simple signifie que le frontal sait quels composants introduire et introduit plusieurs composants dans le composant parent, mais ne le restitue pas une fois que certaines conditions sont remplies, il sera rendu à un certain moment. emplacement. import{reactive,ref,shallowReactive,onActivated,defineAsyncComponent,}from'vue';constcustomModal=defineAsyncComponent(()=>import('./modal/CustomM

Le titre est la signification qui définit le titre de la page Web. Il se trouve dans la balise et correspond au texte affiché dans la barre de titre du navigateur. Le titre est très important pour l'optimisation des moteurs de recherche et l'expérience utilisateur de la page Web. Lorsque vous rédigez des pages Web HTML, vous devez veiller à utiliser des mots-clés pertinents et des descriptions attrayantes pour définir l'élément de titre afin d'inciter davantage d'utilisateurs à cliquer et à parcourir.

Vue.js est un framework frontal populaire qui fournit de nombreuses API pour la personnalisation des composants. Cet article présentera les API mixin, extend, composant et autres dans Vue pour vous aider à maîtriser les compétences de personnalisation des composants. Mixin Mixin est un moyen de réutiliser le code des composants dans Vue. Cela nous permet de réutiliser du code déjà écrit dans différents composants, réduisant ainsi le besoin d'écrire du code en double. Par exemple, nous pouvons utiliser des mixins pour nous aider à combiner plusieurs groupes

Avec le développement continu de la technologie du cloud computing, la sauvegarde des données est devenue quelque chose que chaque entreprise doit faire. Dans ce contexte, il est particulièrement important de développer un système de sauvegarde cloud hautement disponible. Le framework PHP Yii est un framework puissant qui peut aider les développeurs à créer rapidement des applications Web hautes performances. Ce qui suit explique comment utiliser le framework Yii pour développer un système de sauvegarde cloud hautement disponible. Conception du modèle de base de données Dans le framework Yii, le modèle de base de données est une partie très importante. Parce que le système de sauvegarde des données nécessite beaucoup de tables et de relations

À l’ère actuelle de l’information, le big data, l’intelligence artificielle, le cloud computing et d’autres technologies sont devenus au centre des préoccupations des grandes entreprises. Parmi ces technologies, la technologie de rendu des cartes graphiques, en tant que technologie de traitement graphique haute performance, fait l'objet de plus en plus d'attention. La technologie de rendu des cartes graphiques est largement utilisée dans le développement de jeux, les effets spéciaux de films et de télévision, la modélisation technique et d'autres domaines. Pour les développeurs, choisir un framework adapté à leurs projets est une décision très importante. Parmi les langages actuels, PHP est un langage très dynamique. Quelques excellents frameworks PHP comme Yii2, Ph.

À mesure qu’Internet continue de se développer, la demande de développement d’applications Web augmente également. Pour les développeurs, le développement d'applications nécessite un cadre stable, efficace et puissant, qui peut améliorer l'efficacité du développement. Yii est un framework PHP hautes performances de premier plan qui offre des fonctionnalités riches et de bonnes performances. Yii3 est la version nouvelle génération du framework Yii, qui optimise davantage les performances et la qualité du code basé sur Yii2. Dans cet article, nous présenterons comment utiliser le framework Yii3 pour développer des applications PHP.
