Re: Injecting structure to ZEND_NEW
| From: | Dominic Grostate | Date: | Tue, 29 Sep 2015 16:29:38 +0000 |
| Subject: | Re: Injecting structure to ZEND_NEW | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-88560@lists.php.net to get a copy of this message | ||
Hi, ive already started working with the handlers. I've set up the parser
to accept addition syntax before the ctor. The type arguments are passed
to a new opcode handler which triggers prior to NEW but after FETCH_CLASS
(if dynamic, after resolve on CONST).
This needs to override the fetching of the class during the current NEW
handler, but to do that I need to supply addition data.
Do you know what I mean? I'm sorry if I'm explaining it badly.
On 29 Sep 2015 4:58 pm, "Joe Watkins" <pthreads@pthreads.org> wrote:
> lxr: zend_set_user_opcode_handler
>
> On Tue, Sep 29, 2015 at 4:57 PM, Joe Watkins <pthreads@pthreads.org>
> wrote:
>
>> I think you are looking for opcode handlers, what you want to do is
>> implement a ZEND_NEW handler ...
>>
>> For reference, xdebug and uopz overload handlers, as well as many other
>> extensions ...
>>
>> Cheers
>> Joe
>>
>> On Tue, Sep 29, 2015 at 3:47 PM, Dominic Grostate <
>> codekestrel@googlemail.com> wrote:
>>
>>> I'm trying to pass a new structure into the ZEND_NEW handler which will
>>> be
>>> used to change the behaviour of zend_fetch_class_by_name.
>>>
>>> The issue I'm having though is the operands won't support the new type
>>> unless I compile it to zval, but I can't use zend_execute_data to
>>> reference
>>> that in a pre-handler since that appears to deal exclusively with
>>> function
>>> calls.
>>>
>>> op2 is taken on ZEND_NEW for the ctor skip, which is why I can't pass a
>>> new
>>> zval directly to it. Is there another means I can pass the structure in?
>>>
>>> Dominic
>>>
>>
>>
>