开发者

phpurple compile error - php 5.3

开发者 https://www.devze.com 2023-02-06 01:44 出处:网络
Im trying to compile phpurple. Im d开发者_如何转开发oing everything according to the documentation:

Im trying to compile phpurple. Im d开发者_如何转开发oing everything according to the documentation: hxxp://phurple.php.belsky.info/ch02.html

but "make" gives me an error:

/myhomedir/phpurple/purple.c: In function ‘call_custom_method’:
/myhomedir/phpurple/purple.c:1370: error: ‘zend_fcall_info’ has no member named ‘object_pp’
/myhomedir/phpurple/purple.c:1408: error: ‘zend_fcall_info_cache’ has no member named ‘object_pp’

I`ve found other people with the same problem:

hxxp://www.mail-archive.com/monetdb-bugs@lists.sourceforge.net/msg05515.html

hxxp://belsky.info/archives/23-Phurple-per-se-PHPurple.html

but nobody gives any information about successful php 5.3 build and the message

PROJECT IS CLOSED

if you want commercial support for php 5.3, let me know ... )

does not help at all.

does anyone have any idea how to compile it or any clue how to fix the problem ?

P.S. Sorry about the links, some strange StackOverflow limitation


According to phpurple requirements:

 Please let me know, if you've successfully compiled on
 earlier versions. Actually the extension is being developed
 on the php v5.2.6 with the option to be upcomming php v5.3
 compatible.

The authors will need to update their source. However, since you have the source you could update it yourself because you noted that the project is CLOSED. You could also fork the code and create your own gitHub project with php 5.3 support.

Good luck.


What you are seeing is PHP's shifty interface (ahem, hold your down votes, I said s h i f t y). By that, I mean function prototypes are subject to change from version to version. Take this meta example:

int foo_call_bar(const char *foobar, size_t len);

And in a later version of something, the function calculates the length dynamically, thus eliminating the second variable in the prototype:

int foo_call_bar(const char *foobar);

Some projects strive to always maintain backwards compatibility to alleviate this headache, which could be accomplished with pre-processor directives that prototype the new implementation with the len variable, but just don't do anything with it. If PHP did that, the code base would succumb to even more madness.

Unfortunately, you'll have to modify phpurple to present the correct arguments to the correct PHP functions, and ensure that they are of the appropriate type. That would be a bit of an undertaking, but probably wouldn't be as difficult as it seems.

The Linux kernel's VFS interface is the same way, and I'm often tasked with porting older experimental file systems to work on modern kernels.


look at that man

http://sourceforge.net/news/?group_id=235197&id=296063


A little late, but here is the latest library that works with PHP 5.3:

The new project page is: http://sourceforge.net/projects/phurple

The blog post: http://belski.net/archives/23-Phurple-per-se-PHPurple.html

I have ran into a problem after I have complied it and added the extension to PHP.ini configuration:

PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/modules/phurple.so' - /usr/lib/php/modules/phurple.so: undefined symbol: ZVAL_ADDREF in Unknown on line 0

To fix this, change the line containing ZVAL_ADDREF in client.c from

ZVAL_ADDREF(PHURPLE_G(phurple_client_obj));

to

Z_ADDREF_P(PHURPLE_G(phurple_client_obj));


Well, the new URL seems to be a persistent repo with fixes to PHP-5.3 and above. Maybe that should be mentioned, but that won't help with checking it out anyway. For me it worked fine, so I would say it is worth a try.


You can check the new sources shortly posted on https://github.com/weltling/phurple

0

精彩评论

暂无评论...
验证码 换一张
取 消