Re: When will the extension and embedding APIs ever be cleaned or documented?
On Fri, 2014-02-14 at 01:17 +0100, Kevin Ingwersen wrote:
> Am Fr. Feb. 14 2014 00:04:01 schrieb Johannes Schlüter:
> > Mind: "Compatibility is a feature." (Bjarne Stroustrup) The fact that 10
> > years old extensions can be used with php git master with quite little
> > work is not only a help for old users but also promise to new users that
> > their investment won't be lost easily.
>
> But what if there was something like a wrapper above the old api, to
> give it a cleaner appearance, so people could choose to work with the
> newer, or older, API?
Well, there wasn't a satisfiable API proposed, yet. The current "API" is
quite wide making it hard to wrap without requiring too much "escape
points". There are projects like https://github.com/moriyoshi/boost.php
though. (Last change 4 years ago ...)
In the end: Once people are used to it it isnot toooo much of a urden to
use the existing interface in most cases.
> BTW, in the API „book“, I dont find what I am looking for; storing a
> forgein thing into the object. Like if I was to write a PHP module
> that exports a PHP class, I would like to create a class instance to a
> C++ class, and store that instance within the php object (struct?).
> Like:
>
> zval* this = getThis();
> MyClass* mc = (MyClass*)get_pointer_from_zvalthis);
>
> And, well, vice-versa.
Maybe this helps:
http://talks.somabo.de/200903_montreal_php_extension_writing.pdf
starting ca. slide 89.
Mind that this might be a bit outdated, property handling changed a tiny
bit, the UPRADING.INTERNALS file in a recent PHP distribution should
have details if you run into issues ... ignore the comment on the
UPGRADING file ... I can't seem to find the relevant reference ..
damn ... notably direct manipulation of properties via zend_hash_copy as
on slide 90 is to be replaced with object_properties_init(), if you hit
issues there please ask again and I (or maybe/hopefully somebody else)
can dig deeper and help more.
> Otherwise, that phpinternalsbook is very detailed, and I like how its
> written :)
>
> Although its no real PHP project - why not just link it in the php.net
> docs? o.o
That probably might be done, I'd prefer integration so more people can
update it ... I myself wasn't aware of the existence before.
johannes
Thread (8 messages)