手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表2010年07月20日的文章

PHP笔记

1、老王的乱炖中写了一个例子。

写代码要细心【http://hi.baidu.com/thinkinginlamp/blog/item/5e8062d9b33ccc2110df9b2a.html】

看一段PHP代码,设想一下它的输出结果,可以用来做面试题:

<?php if ($a = 100 && $b = 200) { var_dump($a, $b); } ?>

我眼睛一闭就随便想了一下$a=100,$b=200。然后看标题是写代码要细心。再仔细看看。才发现。。。额,我错了。

2、yaml

yaml这东西有据可证以来,好象在国内,应该算是QeePHP最早拿来做应用(我是指开源项目中),确实这东西挺方便【现在新浪sae的配置文件就是用yaml的】

初学者可以看看http://www.lanyg.com/blog/?p=63,Tim在这里写了一些简单的入门。不过我相信,足够你使用了。

yaml主要还是写起来方便。而且不用过多的担心语法(xml还需要闭合。array的话也需要注意PHP语法),yaml反正解析出来,要么不对,要么就正确。至少不会报一些奇怪的错误。

3、HTTP协议。

这篇也是来自于tim的博客:http://www.lanyg.com/blog/?p=33,他也是转载的csdn的文章http://blog.csdn.net/gueter/archive/2007/03/08/1524447.aspx,原作者是jeffrey,内容挺长。不过如果你想要模拟http POST和GET数据,你真的可以看一下这一篇东西

它介绍了【HTTP协议详解之消息报头】,也教你如何用telnet查看http协议的通讯过程(当然现在我们都是用firebug或者fildder之类的工具),文章最后介绍了一些补充协议,如代理(proxy),通道(tunnel)等。值得一看。

Tags: yaml, operation

typecho 插件开发(三)

在typecho开发插件的时候,很有可能会用到关联插件(即,部分信息需要从其他插件里来读取)因此,在插件激活的时候就得先判断是否关联插件已经启用。

最初我的代码是:

PHP代码
  1. $mailOptions = Typecho_Widget::widget('Widget_Options')->plugin('CommentToMail');  
  2. if(emptyempty($mailOptions)){//这里会出现两个empty,这是编辑器的关系,代码中只有一个  
  3.     throw new Typecho_Plugin_Exception(_t('对不起,数据库备份插件需启用CommentToMail插件。'));  
  4. }  
但是在这样处理的时候,会提示“找不到CommentToMail插件的配置信息”,直接就抛出异常

于是代码改成:

PHP代码
  1. try{  
  2.     $mailOptions = Typecho_Widget::widget('Widget_Options')->plugin('CommentToMail');  
  3. }catch(Exception $e){  
  4.     throw new Typecho_Plugin_Exception(_t('对不起,数据库备份插件需启用CommentToMail插件。'));  
  5. }  

于是这样的出错提示信息就较为友好了。

由于关联了其他插件,因此在处理的时候,还要再判断这个$mailOption是否存在,因此我把它设为了protected static $mailOptions,然后在要处理的页面会判断这个变量是否为empty。如果是后台处理就抛出异常,前台处理则直接return;不作继续

Tags: typecho, 插件, 技巧