我已经为以下函数创建了.so文件:
main.cpp:
#include<stdio.h>
#include "test.h"
int main()
{
int a=hello();
printf("%d",a);
return 0;
}
test.h
int test()
{
int a=5,b=10,c;
printf("Hi");
c=a+b;
return c;
}
现在我为上面的程序创建了共享库文件main.so,并希望从php脚本中调用hell()函数。
p1.php
<?php
// Call to test function in main.cpp
>
我在网上看到了各种教程,但并没有明确的解释。有人能提供一些教程的链接或帮助我解决这个问题吗?
Sara Goleman的书非常全面地介绍了如何开发php扩展(包括您的主题)。
这是一篇介绍性文章。
http://devzone.zend.com/303/extension-writing-part-i-introduction-to-php-and-zend/
我读过她的书,它完全涵盖了这个问题。
http://www.amazon.com/dp/067232704X
如果这不是一个简单快捷的答案,我很抱歉。然而,PHP API并不完全是直接的。如果没有关于每个组件的进一步背景信息,这就没有什么意义。一旦我有了它,我就能清楚地看到PHP API的开发。
或者,如果您正在寻找不同的方法,则可能需要使用RabbitMQ或其他消息队列服务来调用c++应用程序并从(可选)持久性c++进程来回发送消息。
以下是我发现有用的进一步链接:
http://devzone.zend.com/1435/wrapping-c-classes-in-a-php-extension/
http://talks.somabo.de/200903_montreal_php_extension_writing.pdf
http://simonholywell.com/post/2010/09/15-excellent-resources-for-php-extension-development.html
http://blog.golemon.com/2006/06/what-heck-is-tsrmlscc-anyway.html
http://www.php.net/manual/en/internals2.php