Cet article se concentre principalement sur la mise en œuvre des conteneurs internes et des façades de la charpente comme référence,
Avant cela, nous avons analysé l'analyse du code source du chargement automatique des classes et du chargement des fichiers de configuration. Cet article est le troisième article, qui analyse principalement le code source pour l'implémentation de. conteneurs et classes de façades. Et apprenez quelques points de connaissances pour implémenter cette fonction.
Apprentissage Il y a deux modèles de conception que vous devez comprendre avant les conteneurs et les façades, le mode singleton et le mode arbre d'enregistrement.
Donnez d’abord une brève explication du modèle singleton.
Il s'agit d'un mode singleton simple implémenté par Kaka. Vérifiez s'il est cohérent avec les trois fonctionnalités majeures ci-dessus.
La variable statique est instance
Elle a une structure et est privée
La dernière est la méthode statique getInstance
Faisons un test simple
Faisons un test simpleToujours en test dans le contrôleur d'index Afin de confirmer que sa classe n'a été instanciée qu'une seule fois, elle a été appelée quatre fois
Visitez cette méthode pour y jeter un œil
new-class n'est exécuté qu'une seule fois, ce qui prouve directement que la classe créée n'est instanciée qu'une seule fois.
Une question que j'avais avant Kaka, voici pourquoi le constructeur utilise ici des attributs privés. Avez-vous déjà eu cette question auparavant ? Kaka vous amènera à y répondre ensemble La méthode du constructeur pour définir les propriétés privées dans cette classe consiste à empêcher sa classe d'être instanciée en externe.Lorsque cette classe est instanciée en externe, l'erreur suivante sera signalée.
thinkphp/library/think/Container.php
Alors pourquoi est-ce que je mentionne le modèle singleton ici ! En effet,
sera utilisé dans le code source du prochain conteneur d'apprentissage. Par exemple, dans la classe ci-dessous, il y a une instance pour obtenir le conteneur actuel.
Jusqu'à présent, le mode singleton a été simplement compris. Comprendre le mode singleton, c'est aussi mieux comprendre le conteneur.La persévérance dans l'apprentissage, la persévérance dans le blogging et la persévérance dans le partage sont les convictions auxquelles Kaka a toujours adhéré depuis ses débuts. J'espère que les articles de Kaka sur le grand Internet pourront vous apporter un peu d'aide. Je m'appelle Kaka, à la prochaine fois.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!