Php Zephir是否可以包含一个外部库?
我有一些C语言的代码,可以访问一些硬件。这段代码已经准备好并经过良好测试。现在我想实现一个web界面来控制这个硬件。所以我和Zephir一起开发PHP扩展Php Zephir是否可以包含一个外部库?,php,c,zephir,Php,C,Zephir,我有一些C语言的代码,可以访问一些硬件。这段代码已经准备好并经过良好测试。现在我想实现一个web界面来控制这个硬件。所以我和Zephir一起开发PHP扩展 我的问题是,“Zephir是否有可能包括一个外部库resp。如果可能的话,我该怎么做?是的,这是可能的,使用C代码有两种方法 通过在CBLOCKs中包装C代码 您可以在标记中嵌入c代码,如下所示:%{//c-code}% 此功能未记录,但存在于测试中 %{ //包括标题 #包括“headers/functions.h” //fibonac
我的问题是,“Zephir是否有可能包括一个外部库resp。如果可能的话,我该怎么做?是的,这是可能的,使用C代码有两种方法 通过在CBLOCKs中包装C代码 您可以在标记中嵌入c代码,如下所示:
%{//c-code}%
此功能未记录,但存在于测试中
%{
//包括标题
#包括“headers/functions.h”
//fibonacci的c实现
静态长斐波那契(长n){
如果(n<2)返回n;
否则返回fibonacci(n-2)+fibonacci(n-1);
}
}%
看起来有点难看,但很管用,)有点优雅,但也很管用,是自定义优化器:
通过编写自定义优化器
“优化器”的工作原理类似于函数调用的拦截器
“optimizer”将PHP用户区中的函数调用替换为
更快、开销更低的直接C呼叫
表演
可以编写一个带有干净接口的优化器,允许Zephir知道传递给C函数的参数类型和返回的数据类型
手册:
示例(调用fibonacci c-func):你是Zephir的人吗?你在项目中使用它吗?更像是一个关注社区趋势的全能PHP人。特别是像Phalcon和YAF这样的面向性能的扩展引起了我的注意。我已经将Phalcon作为默认扩展添加到我的堆栈中。
%{
// include a header
#include "headers/functions.h"
// c implementation of fibonacci
static long fibonacci(long n) {
if (n < 2) return n;
else return fibonacci(n - 2) + fibonacci(n - 1);
}
}%