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

Reply via email to