search
HomePHP FrameworkThinkPHPFinal summary of ThinkPHP container

Final summary of ThinkPHP container

Oct 15, 2020 pm 04:06 PM
thinkphp

This article is the last summary article after reading the container source code. It is a small summary of the knowledge about containers

8. Summary after reading the container source code

Registration mode

This article starts with two design patterns, namely singleton pattern and registration tree pattern.

A simple understanding of the singleton mode is that only one instance object will be returned during the application declaration cycle, and no new objects will be created.

The understanding of the registration tree mode is that all objects used in the program will be stored in a tree. When using it, you can directly obtain the object from the tree and use it directly.

Inversion of Control Dependency Injection

Don’t let the names of Inversion of Control and Dependency Injection confuse people. They look at the problem of an event differently. One is from the perspective of the container, and the other is from the perspective of the application.

From the perspective of the container, the container controls the application, and the container reversely injects external resources into the application

From the perspective of the application, the application relies on the container to create and inject the external resources it requires.

Reflection

There is nothing to summarize about reflection. Just open the document and take a look. The important thing is to learn to use it and know what each means and learn to use it flexibly.

Container source code analysis

After reading the source code of the container, you will find that the things used are formed by the three knowledge points mentioned above. Use the registration mode to configure the container. Object management in .

You need to keep in mind the four attributes used in the source code for this diagram.

Final summary of ThinkPHP container
Insert picture description here

In a code execution process

Final summary of ThinkPHP container
Insert picture description here

The most important methods in the container are invokeClass and bindParamsThere is no problem with these two methods if they follow the Kaka idea, but follow the breakpoint process. A little execution.

It may be a bit confusing when you read this, but after reading it carefully, you will find that you can learn a lot

Keep learning and blogging , Persistence in sharing is the belief that Kaka has always upheld since he started his career. I hope that Kaka’s articles on the huge Internet can bring you a little bit of help. I am Kaka, see you in the next issue.

The above is the detailed content of Final summary of ThinkPHP container. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Tools

MantisBT

MantisBT

Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

Dreamweaver Mac version

Dreamweaver Mac version

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

PhpStorm Mac version

PhpStorm Mac version

The latest (2018.2.1) professional PHP integrated development tool

WebStorm Mac version

WebStorm Mac version

Useful JavaScript development tools