Home >PHP Framework >ThinkPHP >Let's talk about the past and present life of spl_autoload_register
❝This article will take you through the story of spl_autoload_register.
❞
##❝Kaka compiled a road map and set out to create an interview guide, preparing to follow this road map I am writing an article, and I am adding some knowledge points that have not been added later. I also hope that all my partners will help to add them. See you in the comment area! ❞
The concept of namespace was introduced in PHP5.3. For this reason, a contributor said this in the PHP documentation 11 years ago, I made this benchmark to ensure that I don't recommend something that could be called "nice, but slow" later
.
Translates to "I did this test to ensure that I will not recommend something that can be called good, but very slow" in the future.
The test is to define 10 folders, each folder has 10 subfolders and each subfolder has 10 classes, and then use autoload and spl_autoload to compare, and the average execution The time is 50ms longer.
Then this thing refers to _autoload()
. This method will eventually be abandoned in PHP7.2.
In addition to efficiency issues, there is another reason why the _autoload method was finally abandoned.
spl_autoload_register You can write multiple ones according to your own needs. The loading order is in queue mode, first in, first out.
autoload is a global function, so it can only be defined once. If defined multiple times, an error will be reported. If a project is implemented using multiple frameworks, this problem will arise.
This function has only three parameters, the first parameter is automatically loaded Function, the second parameter is whether to throw an exception when the automatically registered function fails, and the third parameter is to add the function to the head of the queue, not the tail of the queue.
The above are all defined based on true.
Define two files say and user
The say file declares a class Say and sets a method hello
When we come to the user file, we need to define an autoload method first, and then use spl_autoload_register to register
Printed data results
❝Persistence in learning, persistence in blogging, and persistence in sharing are what Kaka has always upheld since his career Faith. I hope that Kaka’s articles on the huge Internet can bring you a little bit of help.
❞
The above is the detailed content of Let's talk about the past and present life of spl_autoload_register. For more information, please follow other related articles on the PHP Chinese website!