为插件引擎准备好要用到的测试函数
function str2str2($str){
return '<p>P标签开始 '.$str.' P标签结束<p/>';
}
function str3str3($str){
return '<b style="color:red">b标签开始 '.$str.' b标签结束<b/>';
}
注意:在测试三个例子时,一定要一个一个的测试,测试时请注释掉其他多余的例子,否则将无法看到插件引擎权限优先级的 实际对比效果产生异常结果!
例子一:
str2str2 函数的执行优先级小于 str3str3,这里先执行 str3str3($str)函数,后执行str2str2($str)函数;
实际运行流程解刨如下:
$str=str3str3('这是要像插件里所有函数传入的参数这里函数str3str3的执行优先级高于str2str2');
$str=str2str2($str);
echo $str;
输出结果浏览器里查看HTML源代码得到如下内容:
<p>P标签开始 <b style="color:red">b标签开始 这是要像插件里所有函数传入的参数这里函数str3str3的执行优先级高于str2str2 b标签结束<b/> 标签结束<p/>
addPlugin('cleanText','str2str2',array('str'=>''),1);
addPlugin('cleanText','str3str3',array('str'=>''),10);
echo doPlugin('cleanText',array('str'=>'这是要像插件里所有函数传入的参数这里函数str3str3的执行优先级高于str2str2'));
例子二:
addPlugin('cleanText','str2str2',array('str'=>''),10);
addPlugin('cleanText','str3str3',array('str'=>''),1);
echo doPlugin('cleanText',array('str'=>'这是要像插件里所有函数传入的参数这里函数str2str2的执行优先级高于str3str3'));
运行结果HTML页面源代码如下:
<b style="color:red">b标签开始 <p>P标签开始 这是要像插件里所有函数传入的参数这里函数str2str2的执行优先级高于str3str3 P标签结束<p/> b标签结束<b/>
例子三:
addPlugin('cleanText','str2str2',array('str'=>''),1);
addPlugin('cleanText','str3str3',array('str'=>''),1);
echo doPlugin('cleanText',array('str'=>'当权限排序值大小一致时,后面的函数权限优先级要小于前面的故先添加的函数先执行,这里函数str3str3的执行优先级小于str2str2'));
执行后的HTML源代码结果如下:
<b style="color:red">b标签开始 <p>P标签开始 当权限排序值大小一致时,后面的函数权限优先级要小于前面的故先添加的函数先执行,这里函数str3str3的执行优先级小于str2str2 P标签结束<p/> b标签结束<b/>
例子四:
同一标签下的不同函数参数不同,可以根据实际情况传入不同数量的参数,但是传入参数的数量不能少于函数必选项参数的数量
addPlugin('e','json_encode',array('str'=>''),10);
addPlugin('e','json_decode',array('str'=>'','bool'=>false),9);
执行
$arr1=doPlugin('e',array('str'=>array('a'=>'aaa'),'bool'=>false));
或者
$arr2=doPlugin('e',array('str'=>array('a'=>'aaa')));
print_r($arr1);
和
print_r($arr2);
结果相同返回如下对象:
stdClass Object
(
[a] => aaa
)
如果替换成如下代码
$arr=doPlugin('e',array('str'=>array('a'=>'aaa'),'bool'=>true));
print_r($arr);
结果如下返回数组:
Array
(
[a] => aaa
)
依次查看
print_r($arr1);
print_r($arr2);
print_r($arr);
效果如下
stdClass Object
(
[a] => aaa
)
stdClass Object
(
[a] => aaa
)
Array
(
[a] => aaa
)
测试doAction执行插件的例子(该插件没有返回值,只执行!)
注,该插件为伍返回值插件,故而只用做输出 或直接执行场合,优先级同doPlugin插件优先级设置,故不详述!
function alertstr($str){
echo "<script>alert('$str');</script>";
}
function alertstr2($str){
echo $str.'1+2';
}
addAction('alert','alertstr',array('str'=>''),1);
addAction('alert','alertstr2',array('str'=>''),10);
doAction('alert',array('str'=>'要弹出的参数'));
运行后的HTML源代码结果如下:
要弹出的参数1+2<script>alert('要弹出的参数');</script>
版权声明:
1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。