ThinkPHP3.2.2使用yaml配置格式报错简单修复方法
好久没用ThinkPHP开发了,自己有个小项目需要开发,就想到用ThinkPHP开发,于是下载了最新了ThinkPHP3.2.2,发现里面有个composer.json文件,看到这个文件我真的好开心,因为这样管理第三方代码就方便多了,关于composer的更多内容推荐访问
composer官网 ,如果想简单的了解下,可以访问我的博客
Composer帮你轻松管理PHP包 这篇文章。
另一个让我比较爽的是ThinkPHP3.2.2版本开始,配置文件增加yaml/json/xml/ini以及自定义格式支持,我比较习惯使用yaml格式去配置一些信息,可以我按照官方文档在主入口文件中加了
// 定义配置格式
define('CONF_EXT','.yaml');
执行主入口文件,提醒我 Call to undefined function yaml_parse_file() 根据提示信息,原来官方没有提供yaml_parse_file() 函数。
解析yaml有一个比较成熟的 spyc 类,它不但可以将yaml格式的文件解析成PHP数组,还可以反过来玩,将PHP数组解析成yaml。
spyc
我的解决思路是:
1. 在自己的项目目录下,创建composer.json
{
"require": {
"topthink/thinkphp": "dev-master",
"mustangostang/spyc": "0.5.*@dev"
}
}
2. 安装包
# composer install
3. 创建index.php
<?Php
$loader = require 'vendor/autoload.php';
// 应用入口文件
// 检测PHP环境
if(version_compare(PHP_VERSION,'5.3.0','<')) die('require PHP > 5.3.0 !');
// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为false
define('APP_DEBUG',True);
// 定义应用目录
define('APP_PATH','./Application/');
// 定义配置格式
define('CONF_EXT','.yaml');
function yaml_parse_file($file) {
return Spyc::YAMLLoad($file);
}
// 引入ThinkPHP入口文件
require './vendor/topthink/thinkphp/ThinkPHP/ThinkPHP.php';
// 亲^_^ 后面不需要任何代码了 就是如此简单
4. 搞定啦