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 相关文章推荐
怎样在UNIX系统下安装MySQL
Oct 09 PHP
Linux下ZendOptimizer的安装与配置方法
Apr 12 PHP
php自动更新版权信息显示的方法
Jun 19 PHP
WordPress中给文章添加自定义字段及后台编辑功能区域
Dec 19 PHP
thinkPHP实现MemCache分布式缓存功能
Mar 23 PHP
php使用glob函数遍历文件和目录详解
Sep 23 PHP
php微信开发之自定义菜单完整流程
Oct 08 PHP
ThinkPHP+EasyUI之ComboTree中的会计科目树形菜单实现方法
Jun 09 PHP
thinkphp查询,3.X 5.0方法(亲试可行)
Jun 17 PHP
thinkPHP框架自动填充原理与用法分析
Apr 03 PHP
实现php删除链表中重复的结点
Sep 27 PHP
PHP遍历数组的6种方式总结
Nov 17 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
PHP调用MySQL的存储过程的实现代码
2008/08/12 PHP
PHP弹出对话框技巧详细解读
2015/09/26 PHP
php实现留言板功能
2017/03/05 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
2018/05/21 PHP
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
jQuery zclip插件实现跨浏览器复制功能
2015/11/02 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
jQuery图片渐变特效的简单实现
2016/06/25 Javascript
jQuery Easyui快速入门教程
2016/08/21 Javascript
ionic实现底部分享功能
2017/05/11 Javascript
angular-ngSanitize模块-$sanitize服务详解
2017/06/13 Javascript
two.js之实现动画效果示例
2017/11/06 Javascript
javascript变量提升和闭包理解
2018/03/12 Javascript
vue 不使用select实现下拉框功能(推荐)
2018/05/17 Javascript
vue-cli项目无法用本机IP访问的解决方法
2018/09/20 Javascript
vue强制刷新组件的方法示例
2019/02/28 Javascript
详解Nodejs get获取远程服务器接口数据
2019/03/26 NodeJs
vue 中使用print.js导出pdf操作
2020/11/13 Javascript
python统计一个文本中重复行数的方法
2014/11/19 Python
Python实现的数据结构与算法之基本搜索详解
2015/04/22 Python
python通过socket实现多个连接并实现ssh功能详解
2017/11/08 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
python环形单链表的约瑟夫问题详解
2018/09/27 Python
使用python搭建服务器并实现Android端与之通信的方法
2019/06/28 Python
Python re 模块findall() 函数返回值展现方式解析
2019/08/09 Python
Python collections中的双向队列deque简单介绍详解
2019/11/04 Python
python获取本周、上周、本月、上月及本季的时间代码实例
2020/09/08 Python
Easy Spirit官网:美国休闲鞋履中的代表品牌
2019/04/12 全球购物
买房委托公证书
2014/04/08 职场文书
解除劳动合同协议书范本2014
2014/09/25 职场文书
就业推荐表导师评语
2014/12/31 职场文书
毕业生入职感言
2015/07/31 职场文书
postgresql无序uuid性能测试及对数据库的影响
2021/06/11 PostgreSQL
Python基础之条件语句详解
2021/06/16 Python
SpringBoot2 参数管理实践之入参出参与校验的方式
2021/06/16 Java/Android
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis