写点什么

Phalanger 3.0 发布——使用托管扩展替代 PHP4 原生扩展

2013 年 5 月 14 日

Phalanger 是针对.Net 和 Mono 的运行时,最近一个里程碑版本,其中包括使用.Net 编写的 11 个广泛使用的 PHP 扩展。以前版本中的这些扩展,都是由C或者C++ 编写的,这限制了 Phalanger 只能运行在 32 位模式下。

下面是在 Phalanger 3.0 中托管库的列表:

  • 类库(PhpNetClasslibrary.dll)是 Phalanger 中最基本的部分,它包含了一些列的基本功能(standard,Core,session,ctype,tokenizer,date,pcre,ereg,json,hash,SPL,filter)。
  • cURL (新加入) –为了应对常见的任务, Phalanger 现在对 cURL 扩展支持 HTTP/HTTPS 协议。社区开发者现在可以按需要扩展其功能。
  • GD2,exif 和图片(新加入)是 PHP 中常用的扩展,允许对图片进行读取和操作。
  • Iconv(新加入)基于.NET 的编码对字符串编码进行转换。
  • MSSQL 是微软的 SQL 扩展,使用 SqlConnection 从根本上提升了性能;它也和最新版本的 SQL Serers 兼容。
  • PDO(新加入)是 PHP 数据连接的抽象。对于 PDO 的支持,包括了几种数据库驱动如 SQLite 和 MySQL。开发者现在可以自由对 PDO 进行扩展以支持更多的数据库驱动。
  • SoapClient(新加入)是利用 NET 内置对 SOAP 的支持重新实现了 PHP 中的 SOAP 扩展。
  • SQLite(新加入)是 Phalanager 另外的数据库扩展。
  • Phalanger 的 MySQL 扩展充分利用了最新的 Oracle/.Net 连接器。这能让数据库操作更迅速和安全,允许使用标准的.NET 的方法去设置其他选项和安全配置。
  • XML(新加入)扩展现在也包含在 Phalanger 中。这个必须使用的扩展通常是使用其 uft8 函数。
  • XMLDom 扩展包括了对 PHP 中 SimpleXML,dom,xsl 和 libxml 扩展的支持。它的功能是由 libxml 函数扩展并改善了 HTML 解析函数。这个扩展充分利用了.NET 内置对 XML 的支持,因此能提供很好的性能和安全性。
  • Zip(新加入)扩展得益于开源社区的贡献。不过目前还有额外的工作需要继续完成。
  • Zlib(新加入)扩展是很多 PHP 项目中的核心部分,是因为其支持 gzip 压缩。Zlib 现在也是 Phalanger 中的一部分。

由于这些扩展类库都是由 C#实现,理论上可以和其他基于.NET 的语言一起使用。由于是基于Apache 协议发布的,开发者可以选择其中需要使用的部分。

新版本也包含了其他PHP 5.X 的特性,如二进制数格式和boolval()。函数中调用数组反向引用(array dereference)是可以使用的,但还在试验阶段。

为防止开发者错过,Phalanger Tools for Visual Studio 最近也更新了。在一月份的更新中,我们看到智能感知(IntelliSense)有改进,还包括区域折叠,转向代码定义部分以及支持类视图和对象浏览。

查看英文原文 Replacing Native PHP4 Extensions with Managed Extensions


感谢杨赛对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2013 年 5 月 14 日 10:10718
用户头像

发布了 81 篇内容, 共 16.4 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

分库分表的 9种分布式主键ID 生成方案,挺全乎的

程序员内点事

分库分表 Java 分布式

阿里云官方推出操作系统“等保合规”镜像 -- Alibaba Cloud Linux 等保2.0三级版

阿里云基础软件团队

内核

移动安全加固助力 App 实现全面、有效的安全防护

蚂蚁集团移动开发平台 mPaaS

安全攻防 App风险 mPaaS

架构师训练营第 1 期第 7 周作业

du tiezheng

极客大学架构师训练营

第 7 周 性能优化(一)总结

钟杰

极客大学架构师训练营

天啦撸!打印日志竟然只晓得 Log4j?

沉默王二

Java 日志 log4j

解决大中型浏览器(Chrome)插件开发痛点:自定义热更新方案——2.基于双缓存更新功能模块

梁龙先森

Java chrome 浏览器 技术方案 前端进阶

架构师训练营第八周作业

邓昀垚

极客大学架构师训练营

架构师训练营第八周总结

邓昀垚

Apache DolphinScheduler 是如何走进Apache的

海豚调度

大数据任务调度 数据湖调度 DolphinScheduler Apache DolphinScheduler

tomcat打包成rpm包

lee

tomcat rpm

数据结构与算法系列之链表操作全集(三)(GO)

书旅

go 数据结构

会展云技术解读 | 面对突发事故,APP如何做好崩溃分析与性能监控?

京东科技开发者

云计算 云服务

DB-Engines 11月数据库排名:PostgreSQL坐稳同期涨幅榜冠军宝座

华章IT

数据库 postgresql

接口测试如何在post请求中传递文件

测试人生路

接口测试

go-zero如何追踪你的请求链路

Kevin Wan

go Trace microservice

简析低代码开发与传统开发的区别与优势

Marilyn

敏捷开发 低代码

mongodb 源码实现系列 - 网络传输层模块实现三

杨亚洲(专注mongodb及高性能中间件)

MySQL mongodb 分布式 高性能 分布式数据库mongodb

终于啃完了这份Java核心原理+框架“面试圣经”,成功五面上岸美团

Java架构追梦

Java 架构 面试 微服务 框架开发

揭秘在召唤师峡谷中移动路径选择逻辑?

华为云开发者社区

算法 地图 最短路径

“开源软件供应链点亮计划-暑期2020”公布结果 基于ChubaoFS开发的项目获得最佳质量奖

京东科技开发者

大数据 云原生 开源项目

嗯,查询滑动窗口最大值的这4种方法不错...

王磊

Java 数据结构和算法

【涂鸦物联网足迹】API及SDK介绍

IoT云工坊

软件开发 物联网 API sdk 云平台

技术分享:WebAssembly能否重新定义前端开发模式?

Geek_Willie

webassembly

数据结构与算法系列之栈&队列(GO)

书旅

go 数据结构与算法

重磅解读:K8s Cluster Autoscaler模块及对应华为云插件Deep Dive

华为云开发者社区

容器 k8s 服务

每周一看:16份文档资料,程序员软硬实力全概览,总有一个适合你

小Q

Java 学习 程序员 架构 面试

医疗界“最强大脑”落户杭州!阿里巴巴联合浙大一院共同打造

阿里云情报局

互联网

如何实现后台管理系统的权限路由和权限菜单

徐小夕

Java 编辑器 H5 数据可视化 前端进阶

区块链usdt支付系统开发方案,承兑系统搭建

WX13823153201

区块链usdt支付系统开发

【云小课】版本管理发展史之Git+——代码托管

华为云开发者社区

git 代码管理 托管

Phalanger 3.0发布——使用托管扩展替代PHP4原生扩展-InfoQ