在typecho开发插件的时候,很有可能会用到关联插件(即,部分信息需要从其他插件里来读取)因此,在插件激活的时候就得先判断是否关联插件已经启用。
最初我的代码是:
PHP代码
- $mailOptions = Typecho_Widget::widget('Widget_Options')->plugin('CommentToMail');
- if(emptyempty($mailOptions)){//这里会出现两个empty,这是编辑器的关系,代码中只有一个
- throw new Typecho_Plugin_Exception(_t('对不起,数据库备份插件需启用CommentToMail插件。'));
- }
于是代码改成:
PHP代码
- try{
- $mailOptions = Typecho_Widget::widget('Widget_Options')->plugin('CommentToMail');
- }catch(Exception $e){
- throw new Typecho_Plugin_Exception(_t('对不起,数据库备份插件需启用CommentToMail插件。'));
- }
于是这样的出错提示信息就较为友好了。
由于关联了其他插件,因此在处理的时候,还要再判断这个$mailOption是否存在,因此我把它设为了protected static $mailOptions,然后在要处理的页面会判断这个变量是否为empty。如果是后台处理就抛出异常,前台处理则直接return;不作继续