On May 8, 2007, at 2:59 PM, Philip Olson wrote:
Hi all, just wanted to give you a heads-up that I'm still working on this project; it took me awhile to get the tools properly set up, but I'm plugging away at DocBook XML now, and I'll have a few patches to send in soon, I think. Thanks for all the advice so far!
Hello Gwynne,

This is excellent news, and feel free to write the doc list if you have any questions and/or the IRC channels on efnet (#php.pecl and #php.doc). As far as information on the topic goes, let's start a list of the current landscape (with ideas to steal from):

- The official docs: http://php.net/manual/internals
- CodeGen_PECL: http://pear.php.net/package/codegen_pecl
- A few tutorials: http://devzone.zend.com/public/view/tag/extension
- The book: Extending and Embedding PHP by Sara Golemon
- Many README files in php-src: http://cvs.php.net/viewvc.cgi/php-src/
- A few talks: http://talks.php.net/index.php/Internals
- A nice talk: http://netevil.org/talks/furlong-golemon-extending- php.pdf
- More talks: http://talks.somabo.de/
- A nice talk: http://talks.somabo.de/ 200610_zend_conf_php_extension_development.pdf
- A few examples: http://people.apache.org/~nabeel/php/examples/

Also, let's create a FAQ section dedicated to the topic of extension writing.

This list of links has been extremely helpful to me, Philip; I appreciate it a lot :). I'm embarassed to say I came down with a bit of writer's block lately, so I don't have any patches to send in yet, unfortunately. However, I would like the opinion of the list on the avenue I've chosen.

Basically, it's my estimation that the existing internals documentation in the manual is not organized very well, nor lends itself to updating with any manner of ease. The material I've been writing is a new section dedicated to the API of ZE2, rather than trying to consolidate all the information for ZE1 (outdated) and ZE3 (still changing almost every day). My preliminary outline for the content looks like this (yanked out of my diffs for manual.xml.in and subject to change):

<part id="internals2">
  <title>&Internals2;</title>
  &internals2.intro;
&internals2.buildsys.index; <!-- configure options, ext_skel, config.m4, config.w32, static vs dynamic builds --> &internals2.structure.index; <!-- ext_skel, module structure, globals, lifecycle, tests -->
  &internals2.memory.index;     <!-- management, persistence, TSRM -->
&internals2.variables.index; <!-- zval, hashtable, references, constants --> &internals2.functions.index; <!-- defining, arguments, return values, passthru, aliasing --> &internals2.objects.index; <!-- classes, inheritance, properties, methods, method-function mapping --> &internals2.resources.index; <!-- defining, creating, retrieving, destroying -->
  &internals2.ini.index;        <!-- defining, retrieving, changing -->
&internals2.streams.index; <!-- using, wrappers, contexts, filters -->
  <!-- grab the PDO section from &Internals; here? -->
&internals2.apiref.index; <!-- full index of all APIs, constants, macros, etc. --> &internals2.ze1.index; <!-- quick list of major differences, short discussion re: OOP --> &internals2.ze3.index; <!-- quick discussion of major changes, some details on Unicode -->
</part>

My thinking is to document ZE2 completely, since the differences between 1 and 2 are small enough for the existing internals section to be of use to anyone writing for 1, and 3 can be more fully documented later (something I'm willing to take on as well).

If I'm given a thumbs-down on this way of doing things, I'll take the material I've written already and use it to update the existing internals section, but I think this method has the best chance of giving people the truly comprehensive online reference we've lacked for extension writing up to this point.

-- Gwynne, Daughter of the Code
"This whole world is an asylum for the incurable."

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

Reply via email to