Re: [PHP-DEV] Re: using zend_parse_parameters to get an object of an externally defined class

2007-09-28 Thread Johannes Schlüter
Hi,

On Fri, 2007-09-28 at 13:21 +0200, Michael Wallner wrote:
 alon wrote:
  A newbie question:
  
  How can I use zend_parse_parameters to accept object of an external class 
  as 
  parametr.
  
  I want for example to build a method that accepts 'DateTime' objects.
 
  But how do I initiate the zend_class_entry to specify an object of the 
  DateTime class?
 
 The class entry pointer or a function which returns it needs to be
 exported by the datetime API.  IIRC that's not the case ATM.
 

you can also get the ce using zend_fetch_class() API function. So the
code would look something like

zend_class_entry *ce = zend_fetch_class(DateTime,
   sizeof(DateTime)-1, ZEND_FETCH_CLASS_DEFAULT TSRMLS_CC);

if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC,
  O, obj, ce) == FAILURE) {
return;
}

When referencing an internal class it should be enough to do the fetch
just once and cache the value inside your extension.

 -- 
 Michael
 

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-DEV] Re: using zend_parse_parameters to get an object of an externally defined class

2007-09-28 Thread Michael Wallner
alon wrote:
 A newbie question:
 
 How can I use zend_parse_parameters to accept object of an external class as 
 parametr.
 
 I want for example to build a method that accepts 'DateTime' objects.

 But how do I initiate the zend_class_entry to specify an object of the 
 DateTime class?

The class entry pointer or a function which returns it needs to be
exported by the datetime API.  IIRC that's not the case ATM.

-- 
Michael

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php