Home >PHP Framework >ThinkPHP >If you don't study the source code of ThinkPHP, how will you know the role of the env file?
This article mainly introduces the framework's use of env files to load other types of configuration files. A previous article introduced the factory mode loading of configuration files.
When initializing the application There is an attribute in the module called configExt. This attribute is the extension of the file.
Find where this attribute is set.
According to the config configuration file loading process, you can clearly see that the upper layer of the init
method is the initialization application, which is the initialize
method.
Then this attribute must have been set in advance before the init
method.
Return to the previous level of the init
method initialize
and you can directly see the setting of this value.
This value is obtained from the environment variable of env. If not, it defaults to php, so you need to create an env file. .
And give a default value of yaml
Let me show you the changes. There is a bug in the 5.1.34 LTS version. Kaka is currently using 5.1.39 LTS This issue has been fixed.
I believe you can all see this code. It first sets the default value for configExt, and then loads the environment variable configuration file.
Then the code to load this environment variable is meaningless. The value of configExt will always be .php
Even if the configuration is made in the env file, it will not be obtained.
A yaml configuration file was added to the config configuration file before
Then at this time, you can use the config class to obtain the configuration of the yaml type file.
There is no problem after testing, the data can come out.
But we don’t dare to do this in actual projects! If you want to configure the value configExt
to the environment variable, you need to convert all configuration files in the config directory to the corresponding type.
For example, if configExt is set to .ini, then all files in the config directory need to be changed to ini file format
This content is only for the application after reading the source code. Do not use it in actual projects because all configuration files in the tp framework are of PHP type.
If you change it to other types, you will need to modify all the configuration files in the framework. It would be a shame if you can do this!
Persistence in learning, persistence in blogging, and persistence in sharing are the beliefs that Kaka has always adhered to since its beginning. I hope that Kaka’s articles on the huge Internet can bring you a little bit of help. I’m Kaka, see you next time.
The above is the detailed content of If you don't study the source code of ThinkPHP, how will you know the role of the env file?. For more information, please follow other related articles on the PHP Chinese website!