0

0

thinkphp配置类型有哪些?怎么实现?

零下一度

零下一度

发布时间:2017-06-23 11:32:13

|

1964人浏览过

|

来源于php中文网

原创

一、thinkphp配置类型有哪些?

  1.在thinkphp中,有6种配置。即惯例配置,应用配置、扩展配置、模块配置、场景配置、动态配置。

  2.惯例配置就是系统默认的配置。

  3.应用配置就是我们自己开发创建的应用单独的配置。

  4.扩展配置主要是实现我们项目在开发过程中有一些扩展程序用到的配置。

立即学习PHP免费学习笔记(深入)”;

  5.模块配置就是我们在一个应用中,每一个模块的配置。

  6.场景配置主要是实现我们在不同的开发环境中设置的配置。若我们在家里面办公,电脑环境可能不一样;公司里面办公,公司的电脑环境有不一样。

  7.动态配置在我们模块中开发实现的动态配置。如我们在某一个控制器中定义数据库的配置。

二、thinkphp配置的实现原理是什么样的?

  1.thinkphp实现这样不同类型的配置,很大程度上面方面了我们进行模块化配置,增强了配置的灵活性。

  2.thinkphp的配置加载顺序主要是按照如下顺序。动态配置》》模块配置》》扩展配置》》应用配置》》惯例配置

  3.thinkphp实现配置主要是使用了php的array_merage()函数(如果两个或更多个数组元素有相同的键名,则最后的元素会覆盖其他元素。)。当我们系统去加载我们的配置文件时,就会覆盖前面的配置文件,因此才会实现上面第二步的执行顺序。

三、为什么要实现这样的配置?

  1.通过不同类型的配置,我们便于项目的配置管理。加入我们就使用框架自带的配置,当我们在某个模块开发中,需要将数据存在另外一台服务器的数据库上,是不是我们的项目就不能实现了。像这种情况还很多,这只是一个简单的例子。

四、配置文件要求

  在所有的配置文件中都是采用数组的方式,当我们系统在加载该配置文件时,都会return一个数组,这个数组就是我们的配置项目。我们在系统中访问配置项,可以使用config()助手函数,也可以使用config类

五、如何是实现这些类型的配置呢?

  1.惯例配置。

    惯例配置直接在框架的核心目录下面的convention.php中,这里不做细讲。

  2.应用配置。

Akkio
Akkio

Akkio 是一个无代码 AI 的全包平台,任何人都可以在几分钟内构建和部署AI

下载

    我们在创建项目时,框架会默认在application目录西面创建config.php,database.php等配置文件。我们直接在相应的文件中进行操作即可。下面单独讲解的主要是采用创建一个目录来配置,效果都是一样的,无非是换了个文件路径而已。

    a.定义配置文件路径,找到项目入口文件,在application同级别目录下创建一个config的目录(后面配置讲解都是在该目录下面操作,下面就不单独讲解)。

define('CONF_PATH', __DIR__.'/../config/');

     接下来在该目录下面直接创建配置文件即可,创建的文件名称不一定局限于config,database。至于文件里面的配置项和convention.php配置文件的方式一致。当我们在项目运行过程中,会自动的加载该目录下面的配置项。

  3.扩展配置。扩展配置主要是我们在开发中用它的一些数据的扩展使用,如我们使用邮箱,要涉及到邮箱的账号。便可以在该目录下面配置。我们在config目录下面创建一个extra目录,在该目录下面创建对应的文件。如我在下面创建了email.php文件,定义如下内容:

 "1005349393@qq.com"]; 

  在我们系统中加载该配置项。

var_dump(config("email.user_emial")); // 在系统默认中,会给我们的环境变量都加一个PHP的前缀,并且都会将配置项转换为大写。这里我们使用我们的助手函数便可直接访问配置项。

 

  4.模块配置。这里大致讲解一下即可。主要的就是在我们的模块目录下面创建对应的config.php,database.php等文件即可。

  5.场景配置。***这是本文的大招。场景配置主要是为了适应我们不同的开发环境,例如我们在公司的环境和在家里面的环境配置不一致,此时我们可能需要修改很多地方,同时回到了公司又得修改过来,这样岂不是很麻烦。

    首先,我们在config目录下面的配置文件中加载一个配置项。

'app_status'             => 'office', // 这里的配置项的值就是我们对应的配置环境。

 

    接下来,在我们的config目录下面创建一个office.php(这里的文件名必须和上面配置项的值完全一致

    最后,我们直接在我们的office.php配置文件中配置即可。其实在thinkphp还有个比较不错的功能就是.env。之前一直知道laravel有,没主要thinkphp5,最近才发现。使用该功能对于开发中的配置又方便了很多了。很赞。

    首先我们在我们的项目目录下面创建一个.env的文件,里面配置我们的配置项。如下

 

status= office

 

    我们要使用的话,直接使用框架自带的env类即可。至于更多有关env的方法直接参考开发手册。

'app_status' => Env::get("status");我们将上一步场景配置项中的值设置为.env文件中的配置项。一定要引入ENV这个类。

    通过我们的.env文件,只需要我们实现将一些配置文件配置好,或者将一些常用的配置文件放在.env文件中,我们就只修改这一个文件即可。

  6.动态配置。动态配置顾名思义是随着我们项目开发的需要来配置,而不是直接使用我们配置文件中的配置。下面列举一个简单的实例。

相关文章

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

php

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
java入门学习合集
java入门学习合集

本专题整合了java入门学习指南、初学者项目实战、入门到精通等等内容,阅读专题下面的文章了解更多详细学习方法。

2

2026.01.29

java配置环境变量教程合集
java配置环境变量教程合集

本专题整合了java配置环境变量设置、步骤、安装jdk、避免冲突等等相关内容,阅读专题下面的文章了解更多详细操作。

2

2026.01.29

java成品学习网站推荐大全
java成品学习网站推荐大全

本专题整合了java成品网站、在线成品网站源码、源码入口等等相关内容,阅读专题下面的文章了解更多详细推荐内容。

0

2026.01.29

Java字符串处理使用教程合集
Java字符串处理使用教程合集

本专题整合了Java字符串截取、处理、使用、实战等等教程内容,阅读专题下面的文章了解详细操作教程。

0

2026.01.29

Java空对象相关教程合集
Java空对象相关教程合集

本专题整合了Java空对象相关教程,阅读专题下面的文章了解更多详细内容。

3

2026.01.29

clawdbot ai使用教程 保姆级clawdbot部署安装手册
clawdbot ai使用教程 保姆级clawdbot部署安装手册

Clawdbot是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

25

2026.01.29

clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址
clawdbot龙虾机器人官网入口 clawdbot ai官方网站地址

clawdbot龙虾机器人官网入口:https://clawd.bot/,clawdbot ai是一个“有灵魂”的AI助手,可以帮用户清空收件箱、发送电子邮件、管理日历、办理航班值机等等,并且可以接入用户常用的任何聊天APP,所有的操作均可通过WhatsApp、Telegram等平台完成,用户只需通过对话,就能操控设备自动执行各类任务。

16

2026.01.29

Golang 网络安全与加密实战
Golang 网络安全与加密实战

本专题系统讲解 Golang 在网络安全与加密技术中的应用,包括对称加密与非对称加密(AES、RSA)、哈希与数字签名、JWT身份认证、SSL/TLS 安全通信、常见网络攻击防范(如SQL注入、XSS、CSRF)及其防护措施。通过实战案例,帮助学习者掌握 如何使用 Go 语言保障网络通信的安全性,保护用户数据与隐私。

8

2026.01.29

俄罗斯Yandex引擎入口
俄罗斯Yandex引擎入口

2026年俄罗斯Yandex搜索引擎最新入口汇总,涵盖免登录、多语言支持、无广告视频播放及本地化服务等核心功能。阅读专题下面的文章了解更多详细内容。

622

2026.01.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Redis基础课程
Redis基础课程

共6课时 | 1.7万人学习

memcache基础课程
memcache基础课程

共6课时 | 1.6万人学习

Redis基础视频课程
Redis基础视频课程

共7课时 | 3.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号