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 相关文章推荐
层叠菜单的动态生成
Oct 09 PHP
php&java(二)
Oct 09 PHP
php中的一个中文字符串截取函数
Feb 14 PHP
php中error与exception的区别及应用
Jul 28 PHP
php基于socket实现SMTP发送邮件的方法
Mar 05 PHP
php计算给定时间之前的函数用法实例
Apr 03 PHP
php基于ob_start(ob_gzhandler)实现网页压缩功能的方法
Feb 18 PHP
谈谈从phpinfo中能获取哪些值得注意的信息
Mar 28 PHP
ecshop添加菜单及权限分配问题
Nov 21 PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
May 23 PHP
通过PHP实现获取访问用户IP
May 09 PHP
深入分析PHP设计模式
Jun 15 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
无线电广播的开始
2002/01/30 无线电
php Smarty 字符比较代码
2011/02/27 PHP
PHP中redis的用法深入解析
2014/02/20 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
2015/12/17 PHP
PHP后期静态绑定实例浅析
2018/12/21 PHP
jQuery 页面 Mask实现代码
2010/01/09 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
javascript-简单的计算器实现步骤分解(附图)
2013/05/30 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
Javascript中的getUTCHours()方法使用详解
2015/06/10 Javascript
AngularJS仿苹果滑屏删除控件
2016/01/18 Javascript
javascript函数命名的三种方式及区别介绍
2016/03/22 Javascript
JavaScript中的toString()和toLocaleString()方法的区别
2017/02/15 Javascript
简单谈谈gulp-changed插件
2017/02/21 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
vue2.0+vue-dplayer实现hls播放的示例
2018/03/02 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
jQuery实现鼠标滑动切换图片
2020/05/27 jQuery
python实现在控制台输入密码不显示的方法
2015/07/02 Python
浅谈python和C语言混编的几种方式(推荐)
2017/09/27 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
django框架事务处理小结【ORM 事务及raw sql,customize sql 事务处理】
2019/06/27 Python
Python解析json代码实例解析
2019/11/25 Python
Python处理mysql特殊字符的问题
2020/03/02 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
如何减少垃圾回收让内存更加有效使用
2013/10/18 面试题
如何写一个Java类既可以用作applet也可以用作java应用
2016/01/18 面试题
毕业生自我鉴定
2013/11/05 职场文书
协议书怎么写
2014/04/21 职场文书
水污染治理工程专业求职信
2014/06/14 职场文书
保险公司演讲稿
2014/09/02 职场文书
浪漫的婚礼主持词
2015/06/30 职场文书
心理健康教育主题班会
2015/08/13 职场文书
Spring Boot 整合 Apache Dubbo的示例代码
2021/07/04 Java/Android
springboot新建项目pom.xml文件第一行报错的解决
2022/01/18 Java/Android