您的位置:首页 > 编程语言 > PHP开发

个人博客-ThinkPHP3.1转移ThinkPHP3.2心得

2016-01-18 01:02 489 查看
ThinkPHP3.2的升级知道可以看官方文档:

        http://www.kancloud.cn/manual/thinkphp/1889

下面说说一些比较容易犯错的地方:

一、ThinkPHP3.2里面用F方法储存的数据都被序列化了。假设你用F方法把数据储存到配置文件,储存后的数据都是序列化之后的,这样你就不能像3.1那样用C方法读取配置文件的数据了。我们可以自己定义一个储存数据的方法解决之。在/Application/Common/Common创建function.php,然后添加以下代码:

01
<?php
02
/**
03
 
*
[writeArr 写入配置文件方法]
04
 
*
@param  [type] $arr      [要写入的数据]
05
 
*
@param  [type] $filename [文件路径]
06
 
*
@return [type]           [description]
07
 
*/
08
function
 
writeArr(
$arr
$filename
)
{
09
    
return
 
file_put_contents
(
$filename
"<?php\r\nreturn
"
 
.
var_export(
$arr
,
true) . 
";"
);
10
}
然后可以用这个writeArr方法来写入配置

调用方法:

view
source

print?

1
//
写入配置文件
2
    
public
 
function
 
setConfig(){
3
        
$file
 
=
CONF_PATH.
'/setConfig.php'
;
4
        
if
(writeArr(
$_POST
,
$file
)){
5
            
$this
->success(
'修改成功'
);
6
        
}
else
{
7
            
$this
->error(
'修改失败'
);
8
        
}
9
    
}
二、ThinkPHP3.2加载外部标签库出现“实例化一个不存在的类”错误

例如:

'APP_AUTOLOAD_PATH' => '@.TagLib',
'TAGLIB_BUILD_IN' => 'Cx,Hd',

改成,并放在对应模块的config.php里面,不要放在公共配置的config.php里面

'TAGLIB_BUILD_IN'
=> 'Cx,Home\TagLib\TagLibHd',

    'TAGLIB_PRE_LOAD'
=> 'Home\TagLib\TagLibHd',

三、ThinkPHP3.2下import导入自定义类的问题

首先检查下命名空间有没有出错,然后还要做以下改动:

在import('Class.Image',APP_PATH)之后,实例化时,应该这样:

$Image = new \Image();

而不是

$Image = new Image();

  因为这样的话会直接作为一个当前命名空间下的类使用,所以会报找不到类的错。

四、自定义标签库错误,parseXmlAttr()错误

3.2版本已经作废了该方法,所以要获取属性值,直接就可以通过$attr(属性数组) 变量来获得,

也就是释掉以下即可正常加载标签:

//$attr = $this->parseXmlAttr($attr);
//$attr($attr);

五、3.2版本M方法调用失败(3.1版本正常调用)

这个时候可以试下把MySQL的连接地址重 localhost 改成 127.0.0.1 即可正常调用M方法。

localhost will cause the MySQL client to try a UNIX socket in a standard directory. If that doesn't exist or is somewhere else, you won't be able to connect. 127.0.0.1 always uses a TCP connection.
   

参考网址:

http://iwww.me/258.html

http://www.thinkphp.cn/topic/23917.html

http://stackoverflow.com/questions/20723803/pdoexception-sqlstatehy000-2002-no-such-file-or-directory

http://blog.liunianer.com/post-25.html

http://www.thinkphp.cn/topic/13186.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  thinkphp 版本迁移