核心要点
- Facebook开发的HHVM(HipHop虚拟机)和Hack编程语言旨在提升PHP的执行速度和内存效率,号称速度提升3到10倍,内存占用减半。
- Hack是PHP语言的改进版,更安全、更高效,具有静态类型和构造函数参数提升等特性,减少了样板代码。它完全兼容HHVM,并应用于Facebook的所有生产服务器。
- Hack引入了集合类型,如Vector和Map,功能与PHP数组相同,但提供了更友好的面向对象接口。它还支持lambda表达式,这是闭包的简写形式。
- Hack的类型系统旨在尽早发现编程错误并生成更快的代码。它是静态类型的,支持标量类型,并支持泛型编程,允许创建专用数组和自定义类型。
Facebook于2008年开始研发HipHop for PHP。他们的目标是加快PHP的执行速度,该项目的首个版本由HPHPc/HPHPi组成。HPHPc是一个PHP到C 的转换器,用于将代码部署到生产服务器,而HPHPi则是一个在开发和调试阶段使用的解释器。
HPHPc在提升性能方面做得很好,但并非没有问题:保持HPHPc和HPHPi的同步非常繁琐,转换后的代码与解释后的代码之间仍然存在一些差异。这就是为什么Facebook在2010年决定采用另一种方法,并创建了HHVM——一个旨在取代PHP使用的Zend引擎的新虚拟机。到2012年底,HHVM的性能与之前的HPHPc相当,并很快超越了它。
HHVM旨在同时实现与Zend引擎功能的兼容性和最佳性能。Facebook声称,从PHP APC切换到HHVM后,速度提升了3到10倍,内存占用减少了一半。当然,这实际上取决于应用程序(10倍的提升是针对Facebook的代码库)。本文不会关注兼容性或性能,因为已经有大量的资源可用,可以查看HHVM博客或搜索“hhvm benchmark”。要了解更多关于HipHop和HHVM的信息,请阅读之前的SitePoint文章。
相反,本文将重点介绍Hack,它是PHP语言的改进版,旨在提高安全性、性能和开发效率。请注意,HHVM同时支持Hack和PHP。尽管Hack已用于Facebook的所有生产服务器,但目前泄露的信息很少。简而言之,Hack是Facebook的PHP6——它旨在修复当前PHP的大多数问题,同时添加一些新特性,例如静态类型。
Hack入门
目前并非所有工具和文档都已发布。但是,最新的HHVM源代码已经支持Hack。您可以安装Vagrant虚拟机来开始试验Hack并运行本文中的代码片段:
# 确保你的机器上已安装Vagrant $ git clone https://github.com/vicb/hhvm-vagrant.git $ cd hhvm-vagrant $ vagrant up
现在您可以编写您的第一个Hack程序了:
<?hh require "/vagrant/www/xhp/php-lib/init.php"; $hello = "Hello HACK!"; echo <html><title>{$hello}!</title><h1 id="hello">{$hello}</h1></body></html>;
...(后续内容与原文类似,只是对语句进行同义词替换和句子结构调整,保持原意不变)...
以上是HHVM和HACK-我们可以期望它们代替PHP吗?的详细内容。更多信息请关注PHP中文网其他相关文章!

phpientifiesauser'ssessionusessessionSessionCookiesAndSessionIds.1)whiwSession_start()被称为,phpgeneratesainiquesesesessionIdStoredInacookInAcookInamedInAcienamedphpsessidontheuser'sbrowser'sbrowser.2)thisIdAllowSphptptpptpptpptpptortoreTessessionDataAfromtheserverMtheserver。

PHP会话的安全可以通过以下措施实现:1.使用session_regenerate_id()在用户登录或重要操作时重新生成会话ID。2.通过HTTPS协议加密传输会话ID。3.使用session_save_path()指定安全目录存储会话数据,并正确设置权限。

phpsessionFilesArestoredIntheDirectorySpecifiedBysession.save_path,通常是/tmponunix-likesystemsorc:\ windows \ windows \ temponwindows.tocustomizethis:tocustomizEthis:1)useession_save_save_save_path_path()

ToretrievedatafromaPHPsession,startthesessionwithsession_start()andaccessvariablesinthe$_SESSIONarray.Forexample:1)Startthesession:session_start().2)Retrievedata:$username=$_SESSION['username'];echo"Welcome,".$username;.Sessionsareserver-si

利用会话构建高效购物车系统的步骤包括:1)理解会话的定义与作用,会话是服务器端的存储机制,用于跨请求维护用户状态;2)实现基本的会话管理,如添加商品到购物车;3)扩展到高级用法,支持商品数量管理和删除;4)优化性能和安全性,通过持久化会话数据和使用安全的会话标识符。

本文讨论了PHP中的crypt()和password_hash()之间的差异,以进行密码哈希,重点介绍其实施,安全性和对现代Web应用程序的适用性。

文章讨论了通过输入验证,输出编码以及使用OWASP ESAPI和HTML净化器之类的工具来防止PHP中的跨站点脚本(XSS)。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

Atom编辑器mac版下载
最流行的的开源编辑器

VSCode Windows 64位 下载
微软推出的免费、功能强大的一款IDE编辑器

WebStorm Mac版
好用的JavaScript开发工具

螳螂BT
Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

禅工作室 13.0.1
功能强大的PHP集成开发环境