Home > Backend Development > PHP Tutorial > About the usage of custom configuration and loading of ThinkPHP3.2 framework

About the usage of custom configuration and loading of ThinkPHP3.2 framework

不言
Release: 2023-04-01 08:16:01
Original
1992 people have browsed it

This article mainly introduces the custom configuration and loading usage of the ThinkPHP3.2 framework, and analyzes the related operating skills of the thinkPHP3.2 framework using custom configuration to save predefined array data in the form of examples. Friends in need can refer to the following

The examples in this article describe the custom configuration and loading usage of the ThinkPHP3.2 framework. Share it with everyone for your reference, as follows:

Sometimes we have some rules that define the actual content corresponding to each number, such as in a drop-down menu:

<select name="reasonAndType" id="">
  <option value="1">查询物流</option>
  <option value="2">办理退货</option>
  <option value="3">咨询退货</option>
  <option value="4">咨询佣金</option>
  <option value="5">咨询规则</option>
  <option value="0">其他</option>
</select>
Copy after login

←Actual effect

←Data inventory effect

←When displayed.

In this example, Chinese characters are actually displayed, and the actual value is a number. When we store it in the data, we also store the number. When we get it from the database, we also get the number, and when it is displayed, it is also displayed. Chinese characters;

So we need something similar to a dictionary, which defines what Chinese characters correspond to that number and what is the actual meaning of the definition;

We can achieve this effect using a database, but we No, because the overhead of operating the database is too high;

If it is an ordinary PHP environment, we can save the rules in a separate file, and the content is an array:

type.PHP

$type = array(
&#39;1&#39; => &#39;查询物流&#39;,
&#39;2&#39; => &#39;办理退货&#39;,
&#39;3&#39; => &#39;咨询退货&#39;,
&#39;4&#39; => &#39;咨询佣金&#39;,
&#39;5&#39; => &#39;咨询规则&#39;,
&#39;0&#39; => &#39;其他&#39;
);
Copy after login

Just like the above code, after it is defined, save it as a file. When we need to call this rule, just include or require, and then directly Just use the $type variable to find it, for example:

require_once(&#39;type.php&#39;);
echo $type[1]; //输出&#39;查询物流&#39;
foreach($type as $k => $v){ //直接打印出最上面的下拉菜单代码,
echo "<option value = &#39;{$k}&#39; >{$v}</option>";
}
Copy after login

If you are in ThinkPHP, if you want to import a file, you can only use the absolute path, in include and require Using __APP__ or __ROOT__ shortcut entry is not possible. I haven’t tried the U() chain building function, but it should be possible.

There is another implementation method, which I recommend here, which is to directly define this set of rules as the configuration file of this website. When we use it, use C() to load it. The configuration function just loads this array and assigns it to a variable.

The code is uploaded:

Put the rules you defined under conf. This is a private configuration file. Only the Home entry will take effect. It can also be placed under the public configuration file. Details You can check the manual.

return array(
&#39;REASON_AND_TYPE&#39; => array(
&#39;1&#39; => &#39;查询物流&#39;,
&#39;2&#39; => &#39;办理退货&#39;,
&#39;3&#39; => &#39;咨询退货&#39;,
&#39;4&#39; => &#39;咨询佣金&#39;,
&#39;5&#39; => &#39;咨询规则&#39;,
&#39;0&#39; => &#39;其他&#39;
)
);
Copy after login

Note that return is added;

Note that the format returns an array and the key name is in uppercase ( For the sake of appearance), the key value is what you want to define. Here we define an array.

Modify the config.php file

<?php
return array(
//&#39;配置项&#39;=>&#39;配置值&#39;
&#39;DB_TYPE&#39; => &#39;mysqli&#39;, // 数据库类型
&#39;DB_HOST&#39; => &#39;localhost&#39;, // 服务器地址
&#39;DB_NAME&#39; => &#39;kefu&#39;, // 数据库名
&#39;DB_USER&#39; => &#39;root&#39;, // 用户名
&#39;DB_PWD&#39; => &#39;root&#39;, // 密码
&#39;DB_PORT&#39; => &#39;&#39;, // 端口
&#39;DB_PREFIX&#39; => &#39;&#39;, // 数据库表前缀
&#39;LOAD_EXT_CONFIG&#39; => &#39;reasonAndType&#39;, //这是我们自己添加的,LOAD_EXT_CONFIG键名固定,键值是你的php文件的文件名,那个数组名字在这里就不用管了
);
Copy after login

This is considered configured.

Let’s talk about calling this set of rules:

$reasonAndTypeX = C(&#39;REASON_AND_TYPE&#39;);
//直接用数组名字就可以了,C()函数能加载配置里的键名所代表的值,赋给变量
Copy after login

Note that the value inside the C() function is reasonAndTypeThe value of this file.

var_dump($reasonAndTypeX);
Copy after login

The contents of this array will be entered

array(
&#39;1&#39; => &#39;查询物流&#39;,
&#39;2&#39; => &#39;办理退货&#39;,
&#39;3&#39; => &#39;咨询退货&#39;,
&#39;4&#39; => &#39;咨询佣金&#39;,
&#39;5&#39; => &#39;咨询规则&#39;,
&#39;0&#39; => &#39;其他&#39;
);
Copy after login

This completes the process Defines the setting and loading of configuration files.

If 'REASON_AND_TYPE' is not configured, a null value will be returned;

Of course, you can also set a default value, the code is as follows:

// 如果REASON_AND_TYPE尚未设置的话,则返回default_config字符串
C(&#39;my_config&#39;,null,&#39;default_config&#39;);
Copy after login

The above is the entire content of this article. I hope it will be helpful to everyone’s study. For more related content, please pay attention to the PHP Chinese website!

Related recommendations:

How thinkPHP framework implements multi-table query

Usage analysis of dynamic configuration of thinkPHP framework

The above is the detailed content of About the usage of custom configuration and loading of ThinkPHP3.2 framework. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template