The DoYouHaoBaby PHP Framework中文开发文档手册
Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
Copyright(c) DoYouHaoBaby.NET All Rights Reserved.
[ 使用Javascript版本的U函数 ]
URL 是WEB网站的灵魂,完善的URL 解析系统是构建优质软件的必须。
DoYouHaoBaby Framework提供了PHP 版本的URL生成函数G::U(),这满足了大部分需求。
但是,后来在实践开发过程中,我们又发现了新的问题,那就是在复杂的Javascript请求中,
PHP版本的U函数根本无法满足这一需求。
于是,DoYouHaoBaby 框架提供了Javascript的U函数来解决这个问题。
Javascript版本的URL 函数位于框架中DoYouHaoBaby\LibCom\Js\Dyhb\Url\U.class.js中,这
里根据不同的项目部署方式,提供了两个方法(Dyhb.Url.U和Dyhb.Url.U2),其中
Dyhb.Url.U2用于虚拟主机方式的项目部署方式,Dyhb.Url.U用于独立服务器的项目部署方式。
Dyhb.Url.U的部分代码如下(简化版Dyhb.U):
- /**
- * 模拟框架URL 生成函数
- *
- * < 本函数用于特殊请求,用于框架加载数据
- * 请在模板中预先调用 App::U()初始化相关参数
- * U( 'admin.php://group-module/action?param1=1¶m1=2',new Array
- ('extraparam=hello','extraparam2=hello2','extraparam3=hello3') );
- * U( 'group-module/action?param1=1¶m1=2',new Array
- ('extraparam=hello','extraparam2=hello2','extraparam3=hello3') );
- * U( 'module/action?param1=1¶m1=2',new Array
- ('extraparam=hello','extraparam2=hello2','extraparam3=hello3') );
- * >
- *
- * @param string sUrl 初始化URL
- * @param arrParams arrParams 附件参数
- * @param bool bRedirect 是否返回
- * @param bool bSuffix 是否加上静态化后缀
- * @returns string
- */
- Dyhb.Url.U = function( sUrl, arrParams,bRedirect,bSuffix ) {
- var sWebsite = _ROOT_+'/';
- /* 初始化参数 */
- arrParams = arrParams || new Array();
- bRedirect = bRedirect || false;
- bSuffix = bSuffix || false;
Dyhb.Url.U2的部分代码如下(简化版Dyhb.U2):
- /**
- * 模拟框架URL 生成函数
- *
- * < 本函数用于特殊请求,用于框架加载数据
- * 请在模板中预先调用 App::U2()初始化相关参数
- * U( 'app://group-module/action?param1=1¶m1=2',new Array
- ('extraparam=hello','extraparam2=hello2','extraparam3=hello3') );
- * U( 'group-module/action?param1=1¶m1=2',new Array
- ('extraparam=hello','extraparam2=hello2','extraparam3=hello3') );
- * U( 'module/action?param1=1¶m1=2',new Array
- ('extraparam=hello','extraparam2=hello2','extraparam3=hello3') );
- * >
- *
- * @param string sUrl 初始化URL
- * @param arrParams arrParams 附件参数
- * @param bool bRedirect 是否返回
- * @param bool bSuffix 是否加上静态化后缀
- * @returns string
- */
- Dyhb.Url.U2 = function( sUrl, arrParams,bRedirect,bSuffix ) {
- var sWebsite = _ROOT_+'/index.php';
- /* 初始化参数 */
- arrParams = arrParams || new Array();
- bRedirect = bRedirect || false;
- bSuffix = bSuffix || false;
下面我们在模板中来测试一下我们的U函数。
虚拟主机部署方式的U2函数
我们在模板中写下注释中的代码:
- {script}
- {:App::U2()}
- alert(Dyhb.U2( 'app://group-module/action?param1=1¶m1=2',new Array('extraparam=hello','extraparam2=hello2','extraparam3=hello3') ));
- {/script}
编译后的PHP 代码:
- <script type="text/javascript">
- <?php echo( App::U2() );?>
- alert(Dyhb.U2( 'app://group-module/action?param1=1¶m1=2',new Array('extraparam=hello','extraparam2=hello2','extraparam3=hello3') ));
- </script>
程序运行后的效果:
你将会看到一个弹出窗口,通过这个可以生成Javascript的Url.
/index.php?
- /index.php?app=app&g=group&c=module&a=action¶m1=1¶m1=2&extraparam=hello&extraparam2=hello2&extraparam3=hello3
说明:在使用Dyhb.U2的时候,你必须初始化App::U2来完成相关初始化参数设置。
独立服务器方式的U函数
同Dyhb.U2一样,Dyhb.U类似,大家可以自己测试。
你可以在模板中,写下如下如下的代码:
- {script}
- {:App::U()}
- alert(U( 'admin.php://group-module/action?param1=1¶m1=2',new Array('extraparam=hello','extraparam2=hello2','extraparam3=hello3')));
- {/script}
