写点什么

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

  • 2013 年 5 月 14 日
  • 本文字数:1175 字

    阅读完需:约 4 分钟

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:10946
用户头像

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

关注

评论

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

第四周总结

_

极客大学架构师训练营 第四周总结

【高并发】面试官:讲讲高并发场景下如何优化加锁方式?

冰河

性能优化 高并发 线程安全 同步 加锁

面经手册 · 第13篇《除了JDK、CGLIB,还有3种类代理方式?面试又卡住!》

小傅哥

Java 字节码编程 asm 动态代理 cglib

你不知道的java对象序列化的秘密

程序那些事

Java java序列化 序列化的秘密

JDK14性能管理工具:jmap和jhat使用介绍

程序那些事

内存泄露 JDK14 jmap jhat

Java-技术专题-Pattern类与Matcher类详解

浩宇の天尚

spring-boot-route(十六)使用logback生产日志文件

Java旅途

Java Spring Boot logback

路径依赖:穷人很难逆袭突破的科学道理

陆陆通通

程序人生 穷人 逆袭 突破

一个草根的日常杂碎(10月9日)

刘新吾

随笔杂谈 生活记录 社会百态

优质数据库管理工具盘点,看看这三个软件的区别

CloudQuery社区

数据库 sql 云原生 工具 编辑器

SpringBoot-技术专题-多环境下maven打包

浩宇の天尚

通过MapReduce降低服务响应时间

万俊峰Kevin

mapreduce Go 语言

Hive UDF/UDAF 总结

windism

一个草根的日常杂碎(10月10日)

刘新吾

随笔杂谈 生活记录 社会百态

如何优化多表查询情况下的查询性能问题

迹_Jason

数据库设计 架构设计 查询优化 数据优化

媒介狂想曲

善宝橘

媒介 想象

重新学习面向对象设计之开放-封闭原则

IT老兵重开始

面向对象设计 OCP 开闭原则

极客时间 - 架构师一期 - 第四周作业

_

第四周作业 架构师一期

每个数据科学家都应该知道的5个概念

计算机与AI

学习 数据科学

容器技术之发展简史

阿里云基础软件团队

云原生

比MySQL快839倍!揭开分析型数据库JCHDB的神秘面纱

京东科技开发者

数据库 JCHDB

一个草根的日常杂碎(10月11日)

刘新吾

随笔杂谈 生活记录 社会百态

多种方式实现 LazyMan

局外人

大前端 队列 Promise

Guava-技术专题-Cache用法介绍

浩宇の天尚

通俗易懂和你聊聊寄存器那些事(精美图文)

cxuan

后端 计算机 汇编

我们可以把Adapter精简到什么地步

mengxn

RecyclerView BetterAdapter Adapter

华为程序员发现孩子不是自己的,怒提离婚!女方不要孩子!绿他的竟然是个酒吧混混!

程序员生活志

华为 程序员

为什么学Go(二)

soolaugust

Go 语言

SpringBoot-技术专题-Caffeine用法

浩宇の天尚

CloudQuery,数据库管理用它就够了!

CloudQuery社区

数据库 sql 安全 工具软件

血亏!阿里P8轻易把总结了近一年的java高级特性笔记送人了

996小迁

Java 学习 架构 笔记 Java高级特性

Phalanger 3.0发布——使用托管扩展替代PHP4原生扩展_DevOps_Jonathan Allen_InfoQ精选文章