你有几个邮箱呢?你是怎么分配它们的用途呢?码云账号增加多邮箱支持!
指数
0
Watch 25 Star 101 Fork 10

polarphp / polarphpC/C++

加入码云
与超过 300 万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
polarphp借鉴NodeJS和Go的相关特性对zendVM重新封装,去掉PHP一些古老弃用的特性和强Web属性,通过实现一套新的运行时框架libpdk,将PHP语言打造成为一门真正的通用性脚本语言,赋能PHP,让其拥有异步编程,协程,线程,内置的unicode支持,标准的文件IO等等特性,让PHP程序员不仅仅能做web应用,也能从容面对真正的服务端应用。 展开 收起

https://polarphp.org

  • C++ 49.4%
  • C 34.4%
  • PHP 11.2%
  • CMake 2.4%
  • JavaScript 0.8%
  • Other 1.8%
克隆/下载
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README.md

阅读本文档其他语言版本: English, 简体中文.

为什么要做 polarphp 项目

随着GoNodeJS的强势崛起,PHP的市场份额逐渐被蚕食,而PHP官方仍然坚守在Web编程领域,有些东西越是想守住就越守不住。polarphp借鉴NodeJSGo的相关特性对zendVM重新封装,去掉PHP一些古老弃用的特性和强Web属性,通过实现一套新的运行时框架libpdk,将PHP语言打造成为一门真正的通用性脚本语言,赋能PHP,让其拥有异步编程,协程,线程,内置的unicode支持,标准的文件IO等等特性,让PHP程序员不仅仅能做web应用,也能从容面对真正的服务端应用。polarphp不是一门新的语言,而是PHP语言的一种运行时容器。

主要特性

  • 兼容最新的PHP语言标准,移除废弃语言特性
  • 内置unicode字符标准支持
  • 全功能型运行时库支持,支持异步编程,多线程和协程等等编程模式
  • 内置包管理器
  • 内置文档生成器

开发计划

因为开发资源有限,开发计划暂定如下:

  1. 使用cmakezend VM进行编译,生成polarphp定制版的PHP语言虚拟机
  2. 语言支持项目,语言测试框架,移植LLVM项目的lit测试框架
  3. 实现polarphp驱动程序,实现从命令行执行PHP代码
  4. polarphp虚拟机进行回归测试,暂定跑通PHP的语言虚拟机相关回归测试
  5. 实现polarphp的内置函数
  6. 发布核心虚拟机的docker镜像
  7. 整合libpdk运行时框架
  8. 实现人性化安装,尽量以最少的步骤进行polarphp的安装
  9. 实现包管理器
  10. 实现语言配套小工具,比如文档生成工具等等

开始体验

克隆polarphp项目库

git clone https://github.com/polarphp/polarphp.git
cd polarphp
git submodule init
git submodule update
git checkout v0.0.1-alpha

运行脚本

./devtools/scripts/build_polarphp.sh

这个时候脚本开始编译相关镜像,耗时比较长,请您耐心等待。等待编译完成,您运行:

docker images

这个时候请确认在输出中有如下镜像:

  1. polarphp_base_env
  2. polarphp_debug

如果没有问题,我们开始测试polarphp是否在镜像中正常运行。

docker run --rm -it polarphp_debug

进入镜像后,输入我们的polarphp命令行程序

polar --version

如果您得到下面的输出:

polarphp 0.0.1-git (built: 2019-01-27 12:22)
Copyright (c) 2016-2018 The polarphp foundation (https://polar.foundation)
Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies

恭喜您,您已经成功编译了polarphp运行时环境。 在编译镜像的时候,我们在~/temp/文件夹中放入了一个测试脚本

if (function_exists('\php\retrieve_version_str')) {
    echo "version str: " . \php\retrieve_version_str() . "\n";
}

if (function_exists('\php\retrieve_major_version')) {
    echo "major version: " . \php\retrieve_major_version() . "\n";
}

if (function_exists('\php\retrieve_minor_version')) {
    echo "minor version: " . \php\retrieve_minor_version() . "\n";
}

if (function_exists('\php\retrieve_patch_version')) {
    echo "patch version: " . \php\retrieve_patch_version() . "\n";
}

您可以运行一下命名:

polar ~/temp/main.php

如果没有错误,您将得到下面的输出:

version str: polarphp 0.0.1-git
major version: 0
minor version: 0
patch version: 1

感谢您测试polarphp,有什么问题,请扫描下面的微信二维码进群交流。

社区

目前我们暂时只针对中国的用户,所以采用了微信和QQ群的交流方式,下面是二维码,有兴趣的同学可以扫码加入:

PS:扫码请注明来意,比如:学习polarphp或者PHP爱好者

目前有以下工作组

  1. 语言核心团队
  2. 标准库团队
  3. 生态链项目团队
  4. 文档团队
  5. 官方网站维护团队

授权协议

polarphpphp语言项目之上进行二次开发,遵守php项目的协议,详情请看:项目协议

贡献代码引导

===========================

特别感谢

点评 ( 11 )

你可以在登录后,发表评论

搜索帮助