PHP CPP是一个非常不错的PHP的开发扩展库,主要扩展的是C++语言,能够提供一组文档良好且易于实用的类集合来扩展和构建原生PHP扩展,这个扩展库能够让用户在构建PHP扩展的时候变得有趣且好用,最主要的还是让开发人员在维护的时候更加便利和简单,然后还能够优化一部分的代码。
PHP CPP有很多的优点,首先它非常的快速,用户使用C++编写的代码比起PHP来要更快让计算机执行和编译,当用户使用这个扩展库的时候还能够降低CPU和内存的负载,即使用户用比较低配的计算机进行编程也能够轻松进行。PHP CPP也非常的简单,毕竟,C/C++都是以简单著称的计算机语言,特别是PHP和C++编写的算法十分相似,如果你会使用PHP进行编程,那么毫无疑问在使用这个扩展库的时候用户也能够快速掌握如何编写。
安装教程
PHP-CPP是一个用于开发PHP扩展的C++库。它提供了一套详实易用的类,用于开发PHP扩展。
如果在安装过程中报下面的错误:
g++ -Wall -c -g -std=c++11 -fpic -o shared/common/modifiers.o common/modifiers.cpp
cc1plus: error: unrecognized command line option “-std=c++11″
make: *** [shared/common/modifiers.o] Error 1
在安装PHP-CPP过程中会报如下错误:
g++ -Wall -c -g -std=c++11 -fpic -o common/modifiers.o common/modifiers.cpp
g++ -Wall -c -g -std=c++11 -fpic -o common/streambuf.o common/streambuf.cpp
g++ -Wall -c -g -std=c++11 -fpic php-config --includes -o zend/base.o zend/base.cpp
In file included from zend/includes.h:112:0,
from zend/base.cpp:8:
zend/objectimpl.h: In constructor hp::ObjectImpl::ObjectImpl(zend_class_entry*, Php::Base*)
zend/objectimpl.h:88:95: error: val_property_ctor鈥was not declared in this scope
zend_hash_copy(_mixed->php.properties, &entry->default_properties, (copy_ctor_func_t) zval_property_ctor, &tmp, sizeof(zval*));
make: *** [zend/base.o] Error 1
解决办法如下:
1. 下载对应的php源码
2. 解压php源码,将源码目录下的zend目录拷贝到php-cpp源码目录下,用以替换php-cpp自带的zend
3. 重新编译安装php-cpp
安装过程如下:
扩展库特色
它很快用C ++编写的代码快 - 比用PHP编写的代码快得多。当你开始使用C ++,你降低你的CPU和内存负载,你的网页立即变得更加响应。您可以降低硬件成本,因为您只需要较少的服务器来处理相同数量的页面查看。
非常简单C和C ++有着难以复杂的声誉。但是,只是看看我们的文档中的示例,并惊喜自己。简单的现实是,用C ++编写的算法看起来与用PHP编写的算法几乎完全相同。如果你知道如何在PHP中编程,你可以很容易地学习如何在C ++中做同样的。
事实上,PHP和大多数PHP函数名的语法直接来源于C和C ++语法。从PHP迁移到C ++就像回家。我们错过了你,你已经走了太久了。
不需要Zend引擎知识让我们面对的真相:Zend引擎的内部太复杂,Zend引擎的代码是一团糟,并且大多是无证的。你不想每天处理它。这一直是一个很好的理由,远离编写自己的本机扩展。
但是PHP-CPP库已经在非常容易使用的C ++类和对象中封装了所有这些复杂的结构。你可以使用C ++写出惊人的快速算法,而不必直接调用Zend引擎,甚至无需查看Zend引擎源代码。使用PHP-CPP,您可以编写本地代码,而无需处理PHP的内部。
完整的文件和注释来源许多程序员发现,做一个只能被自己理解的代码是一种荣誉。我们不同意。 PHP-CPP库是完整的文档(文档可以在www.php-cpp.com/documentation上找到),源代码充满了注释和解释。
如果你需要更多的信息,或者想看看源代码,你可以很容易地找到你的方式(虽然处理Zend引擎的内部部分有时可能令人困惑,但这是因为Zend引擎是如此复杂) 。
支持所有重要的PHP功能使用PHP-CPP,您可以像使用普通PHP脚本一样轻松地处理变量,数组,函数,对象,类,接口,异常和命名空间。除此之外,你可以使用C ++的所有功能,包括线程,lambda和异步编程。
你不能比本地更快有很多不同的技术正在开发中,所有尝试加速PHP。但是没有什么会打败本地代码。 C / C ++是所有语言中最快的。为什么你会选择任何其他新兴技术 - 如果你可以使用最快的所有语言,这是同样简单(如果不是更简单)作为其替代品?
成熟的技术C ++是一个有40多年历史的久经考验的语言。 C ++有一个官方的开放标准,并由一个C ++标准委员会控制,成员有成功的记录。编译器由微软,IBM,英特尔,苹果等公司开发,并有几个开源编译器可用(GNU,CLANG),所以你可以随时切换到一个更快或更稳定的替代品。编译器供应商总是有动力去比他们的竞争对手更好,并随时带来他们的编译器的新版本。
所有这一切导致了一个非常稳定,强大,聪明和高品质的编程语言。关于C ++的书籍和培训课程的数量是压倒性的,这个伟大的C ++语言现在也可以用于构建PHP扩展。
加速PHP的替代技术不是基于开放标准,是由单个公司控制的PHP CPP,没有竞争实现,没有长期的C ++遗产,并且经常只使您的软件更复杂。
访问令人难以置信的数量的图书馆C / C ++是世界上最重要的语言,拥有最多的图书馆。当你开始在C / C ++编写代码的那一刻,你立即就可以访问这么大量的库。没有其他语言甚至可以接近在C / C ++中可用的库的数量。
使用C ++很有趣C ++是一个伟大的语言,允许你写出辉煌的面向对象的代码 - 但同时给你的力量破坏一切。使用C ++就像驾驶一个非常强大的跑车:在右手是世界上最好的汽车,但也是一个危险的武器在错误的手中。作为司机 - 你想要这样的车。作为一个程序员 - 你想要C ++。
它是免费的!PHP-CPP是一种开源技术,可供您免费使用。你会疯了不去尝试。