会员登录 | 会员注册 | 意见建议 | 网站地图

站长资源综合门户

当前位置:首页 > 站长学院 > 编程程序 > 把PHP作为C#程序的脚本语言

把PHP作为C#程序的脚本语言

时间:2012-03-05 13:54:28   作者:   来源:   点击:

08 null,/*current class context*/

09 "Default.aspx.cs",/*file name, used for debug and cache key*/

10 1,1,/*position in the file used for debug and cache key*/

11 -1,/*something internal*/

12 null/*current namespace, used in CLR mode*/

13);

如果运行代码表现得和全局php代码一样时,大部分参数看上去就没什么特别之处了。最重要的参数就是code.该参数是一个包含你的php代码的字符串。Phalanger将先转译然后再编译这段代码。转换出的 字节码被将被作为临时程序集被存储在内存中(我们也称它为瞬时程序集)

。注意整个转译以及编译的过程很快,因为瞬时程序集也会被缓存起来加速的运行相同PHP代码。

如你所见,你也能在参数file name以及 postion中提供文件名以及文件所在位置;所以当你调试代码然后单步调试进入表达式时,它将会刚好跳到position参数指定的位置。

注意被缓存的瞬时程序集是否被更新将依赖于ScriptContext前面执行的PHP代码(比如定义好的类以及方法),只有前后两次生成的PHP代码一致时,瞬时程序集才能被缓存下来。这就是为什么Eval方法中的参数code,file name以及position与前面的的匹配时才能缓存后被重用。

那么我们要记住,当随后要运行更多的PHP代码片段时你应该首先考虑这个问题。

最后如果你打算在web应用程序中使用Phalanger时,你应该首先就初始化PHP.Core.RequestContext, 然后在php脚本结束时销毁它。

1using (var request_context = RequestContext.Initialize(

2 ApplicationContextfault,

3 HttpContext.Current))

4{ /* all the stuff above */ }

总结:

总共就是这些。 因为后面执行的的PHP代码中也包含了已经定义好的PHP方法,变量以及类,所以你也能在 代码中使用它们。

应用程序功能的语言。你也能用这个技术去创建一个使用c#建立域名模块和PHP搭建用户接口的web应用程序。

分享到:

网友评论

热门编程程序