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代码优化及php相关问题总结
Oct 09 PHP
eWebEditor v3.8 商业完整版 (PHP)
Dec 06 PHP
关于PHP结束标签的使用细节探讨及联想
Mar 04 PHP
深入探讨:Nginx 502 Bad Gateway错误的解决方法
Jun 03 PHP
PHP包含文件函数include、include_once、require、require_once区别总结
Apr 05 PHP
PHP动态规划解决0-1背包问题实例分析
Mar 23 PHP
详解WordPress中添加和执行动作的函数使用方法
Dec 29 PHP
PHP在线书签系统分享
Jan 04 PHP
Thinkphp和onethink实现微信支付插件
Apr 13 PHP
PHPCMS V9 添加二级导航的思路详解
Oct 20 PHP
php mysql获取表字段名称和字段信息的三种方法
Nov 13 PHP
gearman管理工具GearmanManager的安装与php使用方法示例
Feb 27 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
德生PL990,目前市面上唯一一款便携式插卡蓝牙全波段高性能收音机
2021/03/02 无线电
PHP 获取文件路径(灵活应用__FILE__)
2013/02/15 PHP
ie与session丢失(新窗口cookie丢失)实测及解决方案
2013/07/15 PHP
php 参数过滤、数据过滤详解
2015/10/26 PHP
js模拟实现Array的sort方法
2007/12/11 Javascript
Jquery 返回json数据在IE浏览器中提示下载的问题
2014/05/18 Javascript
JS 对象属性相关(检查属性、枚举属性等)
2015/04/05 Javascript
JS实现alert中显示换行的方法
2015/12/17 Javascript
JavaScript每天必学之事件
2016/09/18 Javascript
详解浏览器渲染页面过程
2017/02/09 Javascript
js清除浏览器缓存的几种方法
2017/03/15 Javascript
简单实现jQuery轮播效果
2017/08/18 jQuery
JS实现定时任务每隔N秒请求后台setInterval定时和ajax请求问题
2017/10/15 Javascript
AngularJS实现的select二级联动下拉菜单功能示例
2017/10/25 Javascript
React Native使用fetch实现图片上传的示例代码
2018/03/07 Javascript
浅谈vue父子组件怎么传值
2018/07/21 Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
2020/10/27 Javascript
详解uniapp的全局变量实现方式
2021/01/11 Javascript
批量获取及验证HTTP代理的Python脚本
2017/04/23 Python
Python基于回溯法子集树模板解决取物搭配问题实例
2017/09/02 Python
Python中的pygal安装和绘制直方图代码分享
2017/12/08 Python
django连接mysql配置方法总结(推荐)
2018/08/18 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
python+webdriver自动化环境搭建步骤详解
2019/06/03 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
2019/07/22 Python
Django项目在pycharm新建的步骤方法
2021/03/02 Python
CSS3实现精美横向滚动菜单按钮
2017/04/14 HTML / CSS
HTML5 video标签(播放器)学习笔记(二):播放控制
2015/04/24 HTML / CSS
大学生优秀团员事迹材料
2014/01/30 职场文书
珍惜时间演讲稿
2014/05/14 职场文书
小学三好学生事迹材料
2014/08/15 职场文书
2015年勤工助学工作总结
2015/04/29 职场文书
2015年电话客服工作总结
2015/05/18 职场文书
不服劳动仲裁起诉书
2015/05/20 职场文书
日本读研:怎样写好一篇日本研究计划书?
2019/07/15 职场文书
一文了解JavaScript用Element Traversal新属性遍历子元素
2021/11/27 Javascript