[PHP-DEV] understanding resources

2002-06-13 Thread Joel Dudley

Hello all,
  I need to write a molecular visualization extension for PHP to complete a
project I am working on. It will have to work somewhat like GD by creating a
resource, having other functions operate on that resource, and then output
an image. I have trouble finding a good explanation of resources in the PHP
docs. Perhaps I missed a section. Regardless, does anyone here know of a
resource that explains resources in extensions? I think I will go over the
GD source code for now, and perhaps that is the best answer to my question.
Thank you for reading my post.

Joel Dudley
Faculty Research Associate
Arizona State University
Kumar Laboratory of Evolutionary Functional Genomics
http://lsweb.la.asu.edu/skumar/




Re: [PHP-DEV] understanding resources

2002-06-13 Thread fabwash

http://www.php.net/manual/en/zend.variables.resource.php will be a starting
point.

Basically you want to do this:

1) Create a destruction handler for your resource:

void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {
}

2) Register the destruction handler:

le_resource =
zend_register_resource_destructors_ex(my_destruction_handler, NULL,
resource);

1) and 2) are done once in the code (usually at startup).

3) Register your resource

ZEND_REGISTER_RESOURCE(return_value, resource_ptr, le_resource);

Then when you need to get your resource, you will get the resource id as a
parameter from the caller, then call :

ZEND_FETCH_RESOURCE(resource_ptr, resource_struct *, resource_id, -1,
resource, le_resource);

The first parameter will return your resource, the second is the type of
your resource, the third is what was returned in return_value and passed
back to the user, so that should be passed as an argument back to your
extension, -1 to say that there is no default resource, resource is just a
name that will be displayed if Zend cannot find your resource, and
le_resource is the resource type you got back when you registered the
resource destructor.

If you don't want to return the resource to the caller but keep it as a
property of your object, that's another story, and I can help on that one
too if necessary.

Fab.

The first argument will be returned to the caller, that will be your
resource identification.
The second argument is a pointer to your resource (a zval, a struct, or
whatever).
The third argument is the resource destruction handler type.

- Original Message -
From: Joel Dudley [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Thursday, June 13, 2002 12:37 PM
Subject: [PHP-DEV] understanding resources


 Hello all,
   I need to write a molecular visualization extension for PHP to complete
a
 project I am working on. It will have to work somewhat like GD by creating
a
 resource, having other functions operate on that resource, and then output
 an image. I have trouble finding a good explanation of resources in the
PHP
 docs. Perhaps I missed a section. Regardless, does anyone here know of a
 resource that explains resources in extensions? I think I will go over the
 GD source code for now, and perhaps that is the best answer to my
question.
 Thank you for reading my post.

 Joel Dudley
 Faculty Research Associate
 Arizona State University
 Kumar Laboratory of Evolutionary Functional Genomics
 http://lsweb.la.asu.edu/skumar/



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




Re: [PHP-DEV] understanding resources

2002-06-13 Thread fabwash

Something went wrong in the format of my message!

It should read:

 ZEND_FETCH_RESOURCE(resource_ptr, resource_struct *, resource_id, -1,
 resource, le_resource);

 The first argument will be returned to the caller, that will be your
 resource identification.
 The second argument is a pointer to your resource (a zval, a struct, or
 whatever).
 The third argument is the resource destruction handler type.

Then
 ZEND_FETCH_RESOURCE(resource_ptr, resource_struct *, resource_id, -1,
 resource, le_resource);

 The first parameter will return your resource, the second is the type of
 your resource, the third is what was returned in return_value and passed
 back to the user, so that should be passed as an argument back to your
 extension, -1 to say that there is no default resource, resource is just
a
 name that will be displayed if Zend cannot find your resource, and
 le_resource is the resource type you got back when you registered the
 resource destructor.

- Original Message -
From: fabwash [EMAIL PROTECTED]
To: [EMAIL PROTECTED]; Joel Dudley [EMAIL PROTECTED]
Sent: Thursday, June 13, 2002 5:46 PM
Subject: Re: [PHP-DEV] understanding resources


 http://www.php.net/manual/en/zend.variables.resource.php will be a
starting
 point.

 Basically you want to do this:

 1) Create a destruction handler for your resource:

 void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {
 }

 2) Register the destruction handler:

 le_resource =
 zend_register_resource_destructors_ex(my_destruction_handler, NULL,
 resource);

 1) and 2) are done once in the code (usually at startup).

 3) Register your resource

 ZEND_REGISTER_RESOURCE(return_value, resource_ptr, le_resource);

 Then when you need to get your resource, you will get the resource id as a
 parameter from the caller, then call :

 ZEND_FETCH_RESOURCE(resource_ptr, resource_struct *, resource_id, -1,
 resource, le_resource);

 The first parameter will return your resource, the second is the type of
 your resource, the third is what was returned in return_value and passed
 back to the user, so that should be passed as an argument back to your
 extension, -1 to say that there is no default resource, resource is just
a
 name that will be displayed if Zend cannot find your resource, and
 le_resource is the resource type you got back when you registered the
 resource destructor.

 If you don't want to return the resource to the caller but keep it as a
 property of your object, that's another story, and I can help on that one
 too if necessary.

 Fab.

 The first argument will be returned to the caller, that will be your
 resource identification.
 The second argument is a pointer to your resource (a zval, a struct, or
 whatever).
 The third argument is the resource destruction handler type.

 - Original Message -
 From: Joel Dudley [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Sent: Thursday, June 13, 2002 12:37 PM
 Subject: [PHP-DEV] understanding resources


  Hello all,
I need to write a molecular visualization extension for PHP to
complete
 a
  project I am working on. It will have to work somewhat like GD by
creating
 a
  resource, having other functions operate on that resource, and then
output
  an image. I have trouble finding a good explanation of resources in the
 PHP
  docs. Perhaps I missed a section. Regardless, does anyone here know of a
  resource that explains resources in extensions? I think I will go over
the
  GD source code for now, and perhaps that is the best answer to my
 question.
  Thank you for reading my post.
 
  Joel Dudley
  Faculty Research Associate
  Arizona State University
  Kumar Laboratory of Evolutionary Functional Genomics
  http://lsweb.la.asu.edu/skumar/
 
 

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



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




Re: [PHP-DEV] understanding resources

2002-06-13 Thread Alan Knowles


http://www.php.net/manual/en/zend.variables.resource.php

- Im sure thats improved alot since I first read it :)

regards
alan

fabwash wrote:

Something went wrong in the format of my message!

It should read:

  

ZEND_FETCH_RESOURCE(resource_ptr, resource_struct *, resource_id, -1,
resource, le_resource);



  

The first argument will be returned to the caller, that will be your
resource identification.
The second argument is a pointer to your resource (a zval, a struct, or
whatever).
The third argument is the resource destruction handler type.



Then
  

ZEND_FETCH_RESOURCE(resource_ptr, resource_struct *, resource_id, -1,
resource, le_resource);

The first parameter will return your resource, the second is the type of
your resource, the third is what was returned in return_value and passed
back to the user, so that should be passed as an argument back to your
extension, -1 to say that there is no default resource, resource is just


a
  

name that will be displayed if Zend cannot find your resource, and
le_resource is the resource type you got back when you registered the
resource destructor.



- Original Message -
From: fabwash [EMAIL PROTECTED]
To: [EMAIL PROTECTED]; Joel Dudley [EMAIL PROTECTED]
Sent: Thursday, June 13, 2002 5:46 PM
Subject: Re: [PHP-DEV] understanding resources


  

http://www.php.net/manual/en/zend.variables.resource.php will be a


starting
  

point.

Basically you want to do this:

1) Create a destruction handler for your resource:

void my_destruction_handler(zend_rsrc_list_entry *rsrc TSRMLS_DC) {
}

2) Register the destruction handler:

le_resource =
zend_register_resource_destructors_ex(my_destruction_handler, NULL,
resource);

1) and 2) are done once in the code (usually at startup).

3) Register your resource

ZEND_REGISTER_RESOURCE(return_value, resource_ptr, le_resource);

Then when you need to get your resource, you will get the resource id as a
parameter from the caller, then call :

ZEND_FETCH_RESOURCE(resource_ptr, resource_struct *, resource_id, -1,
resource, le_resource);

The first parameter will return your resource, the second is the type of
your resource, the third is what was returned in return_value and passed
back to the user, so that should be passed as an argument back to your
extension, -1 to say that there is no default resource, resource is just


a
  

name that will be displayed if Zend cannot find your resource, and
le_resource is the resource type you got back when you registered the
resource destructor.

If you don't want to return the resource to the caller but keep it as a
property of your object, that's another story, and I can help on that one
too if necessary.

Fab.

The first argument will be returned to the caller, that will be your
resource identification.
The second argument is a pointer to your resource (a zval, a struct, or
whatever).
The third argument is the resource destruction handler type.

- Original Message -
From: Joel Dudley [EMAIL PROTECTED]
To: [EMAIL PROTECTED]
Sent: Thursday, June 13, 2002 12:37 PM
Subject: [PHP-DEV] understanding resources




Hello all,
  I need to write a molecular visualization extension for PHP to
  

complete
  

a


project I am working on. It will have to work somewhat like GD by
  

creating
  

a


resource, having other functions operate on that resource, and then
  

output
  

an image. I have trouble finding a good explanation of resources in the
  

PHP


docs. Perhaps I missed a section. Regardless, does anyone here know of a
resource that explains resources in extensions? I think I will go over
  

the
  

GD source code for now, and perhaps that is the best answer to my
  

question.


Thank you for reading my post.

Joel Dudley
Faculty Research Associate
Arizona State University
Kumar Laboratory of Evolutionary Functional Genomics
http://lsweb.la.asu.edu/skumar/


  

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





  





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