THINKPHP支持YAML配置文件的设置方法


Posted in PHP onMarch 17, 2015

为什么要用 yaml

因为 Yaml 简单,而且对人类友好;

Yaml: http://www.yaml.org/

在哪里会用到?

最基本的,在 ThinkPHP 的配置文件里面就可以选择 Yaml 的格式,你是愿意写 Yaml 的简洁格式配置呢?还是愿意写又长又臭又难写的 PHP array 呢?

http://document.thinkphp.cn/manual_3_2.html#config_format

问题来了

于是,我把配置格式改为 Yaml:

// /index.php
// 定义配置文件的格式为 yaml

define('CONF_EXT', '.yaml');

然后把 Application 目录下面的 config.php 全部改为 config.yaml。

这个时候,报错:

Class ‘Spyc' not found 错误位置 FILE: D:\app\think\ThinkPHP\Common\functions.php  LINE: 90

然后找,发现这一段:
/**

 * 解析yaml文件返回一个数组

 * @param string $file 配置文件名

 * @return array

 */

if (!function_exists('yaml_parse_file')) {

    function yaml_parse_file($file) {

        vendor('spyc.Spyc');

        return Spyc::YAMLLoad($file);

    }

}

貌似引入 Spyc 这个库没找到。

找了一下,Spyc 在这里:https://github.com/mustangostang/spyc/

然后,这个 vendor 是什么东东?

看这里:http://document.thinkphp.cn/manual_3_2.html#autoload

结论:

在上面的 Git 里面下载 Spyc.php 放进 /ThinkPHP/Library/Vendor/spyc/ 目录下,就一切正常!Done with the right way!

PHP 相关文章推荐
十天学会php之第九天
Oct 09 PHP
弄了个检测传输的参数是否为数字的Function
Dec 06 PHP
网页游戏开发入门教程三(简单程序应用)
Nov 02 PHP
Discuz7.2版的faq.php SQL注入漏洞分析
Aug 06 PHP
php模拟登陆的实现方法分析
Jan 09 PHP
PHP中使用file_get_contents post数据代码例子
Feb 13 PHP
php遍历目录方法小结
Mar 10 PHP
详解WordPress中的头像缓存和代理中的缓存更新方法
Mar 01 PHP
Laravel 5.3 学习笔记之 错误&日志
Aug 28 PHP
PHP中文字符串截断无乱码解决方法
Oct 10 PHP
详解php协程知识点
Sep 21 PHP
php和asp语法上的区别总结
May 12 PHP
php判断数组中是否存在指定键(key)的方法
Mar 17 #PHP
php在数组中查找指定值的方法
Mar 17 #PHP
php中使用key,value,current,next和prev函数遍历数组的方法
Mar 17 #PHP
PHP实现获取客户端IP并获取IP信息
Mar 17 #PHP
支付宝接口开发集成支付环境小结
Mar 17 #PHP
php读取文件内容到数组的方法
Mar 16 #PHP
php实现以只读方式打开文件的方法
Mar 16 #PHP
You might like
利用谷歌 Translate API制作自己的翻译脚本
2014/06/04 PHP
PHP中使用xmlreader读取xml数据示例
2014/12/29 PHP
PHP中使用SimpleXML检查XML文件结构实例
2015/01/07 PHP
PHP数组去重比较快的实现方式
2016/01/19 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
Js 弹出框口并返回值的两种常用方法
2010/12/30 Javascript
变量声明时命名与变量作为对象属性时命名的区别解析
2013/12/06 Javascript
解析页面加载与js函数的执行 onload or ready
2013/12/12 Javascript
js判断字符长度及中英文数字等
2014/03/19 Javascript
node.js中的events.EventEmitter.listenerCount方法使用说明
2014/12/08 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
javascript自动恢复文本框点击清除后的默认文本
2016/01/12 Javascript
JS获取IE版本号与HTML设置IE文档模式的方法
2016/10/09 Javascript
nodejs Assert中equal(),strictEqual(),deepEqual(),strictDeepEqual()比较
2017/09/18 NodeJs
一个有意思的鼠标点击文字特效jquery代码
2017/09/23 jQuery
详解vue移动端项目的适配(以mint-ui为例)
2018/08/17 Javascript
JS秒杀倒计时功能完整实例【使用jQuery3.1.1】
2019/09/03 jQuery
[15:23]教你分分钟做大人:虚空假面
2014/10/30 DOTA
整理Python中的赋值运算符
2015/05/13 Python
django文档学习之applications使用详解
2018/01/29 Python
python实现k-means聚类算法
2018/02/23 Python
对Python3中bytes和HexStr之间的转换详解
2018/12/04 Python
Python数据可视化教程之Matplotlib实现各种图表实例
2019/01/13 Python
python自动化测试之如何解析excel文件
2019/06/27 Python
解决Python二维数组赋值问题
2019/11/28 Python
python名片管理系统开发
2020/06/18 Python
俄罗斯最大的隐形眼镜销售网站:Ochkov.Net
2021/02/07 全球购物
应聘医药代表职位求职信
2013/10/21 职场文书
共产党员公开承诺践诺书
2014/05/28 职场文书
数学教师个人工作总结
2015/02/06 职场文书
雷峰塔导游词
2015/02/09 职场文书
信用卡收入证明范本
2015/06/12 职场文书
药房管理制度范本
2015/08/06 职场文书
先进基层党组织事迹材料2016
2016/02/29 职场文书
《我的美好婚事》动画化决定纪念插画与先导PV公开
2022/04/06 日漫
MongoDB误操作后使用oplog恢复数据
2022/04/11 MongoDB