Update source docs

This commit is contained in:
Yasuo Ohgaki 2014-01-26 18:28:21 +09:00
parent 4e308abf28
commit 10d06cd4ff
4 changed files with 62 additions and 9 deletions

View File

@ -82,7 +82,7 @@ Exceptions:
library may need to control or free the memory, or when the memory in
question needs to survive between multiple requests.
Naming Conventions
User Functions/Methods Naming Conventions
------------------
1. Function names for user-level functions should be enclosed with in
@ -163,6 +163,25 @@ Naming Conventions
'foobar'
'foo_bar'
Internal Function Naming Convensions
----------------------
1. Exposed module API must be named 'php_modulename_function()' to avoid
symbol collision. They should be in lowercase, with words underscore
delimited. Exposed API must be defined in 'php_modulename.h'.
PHPAPI char *php_session_create_id(PS_CREATE_SID_ARGS);
Unexposed module function should be static and should not be defined in
'php_modulename.h'.
static int php_session_destroy(TSRMLS_D)
2. Main module source file must be named 'modulename.c'.
3. Header file that are used by other sources must be named 'php_modulename.h'.
Syntax and indentation
----------------------
@ -181,9 +200,9 @@ Syntax and indentation
of PHP or one of its standard modules, please maintain the K&R
style. This applies to just about everything, starting with
indentation and comment styles and up to function declaration
syntax. Also see Indentstyle_.
syntax. Also see Indentstyle.
.. _Indentstyle: http://www.catb.org/~esr/jargon/html/I/indent-style.html
Indentstyle: http://www.catb.org/~esr/jargon/html/I/indent-style.html
3. Be generous with whitespace and braces. Keep one empty line between the
variable declaration section and the statements in a block, as well as

View File

@ -1,3 +1,11 @@
This file describes extension module API details. Refer to
README.EXT_SKEL to create extension skeleton files. Refer to
Hacker's Guide for PHP internals.
http://www.php.net/manual/en/internals2.php
Between PHP 4.0.6 and 4.1.0, the Zend module struct changed in a way
that broke both source and binary compatibility. If you are
maintaining a third party extension, here's how to update it:

View File

@ -45,12 +45,29 @@ HOW TO USE IT
--proto=filename.
SOURCE AND HEADER FILE NAME
./ext_skel generates 'module_name.c' and 'php_module_name.h' as main source
and header files. Keep these names.
Module functions (User functions) must be named
module_name_function()
When you need to expose module functions to other modules, expose functions
strictly needed by others. Exposed internal function must be named
php_module_name_function()
See also CODING_STANDARDS.
FORMAT OF FUNCTION DEFINITIONS FILE
All the definitions must be on one line. In it's simplest form, it's just
the function name, e.g.
my_function
module_name_function
but then you'll be left with an almost empty function body without any
argument handling.
@ -72,8 +89,9 @@ FORMAT OF FUNCTION DEFINITIONS FILE
An example:
my_function(int arg1, int arg2 [, int arg3 [, int arg4]]) this is my 1st
module_name_function(int arg1, int arg2 [, int arg3 [, int arg4]])
Arguments arg1 and arg2 is required.
Arguments arg3 and arg4 are optional.
If possible, the function definition should also contain it's return type
@ -133,15 +151,15 @@ EXAMPLE
The following _one_ line
bool my_drawtext(resource image, string text, resource font, int x, int y [, int color])
bool module_name_drawtext(resource image, string text, resource font, int x, int y [, int color])
will create this function definition for you (note that there are a few
question marks to be replaced by you, and you must of course add your own
value definitions too):
/* {{{ proto bool my_drawtext(resource image, string text, resource font, int x, int y [, int color])
/* {{{ proto bool module_name_drawtext(resource image, string text, resource font, int x, int y [, int color])
*/
PHP_FUNCTION(my_drawtext)
PHP_FUNCTION(module_name_drawtext)
{
char *text = NULL;
int argc = ZEND_NUM_ARGS();
@ -164,7 +182,7 @@ PHP_FUNCTION(my_drawtext)
ZEND_FETCH_RESOURCE(???, ???, font, font_id, "???", ???_rsrc_id);
}
php_error(E_WARNING, "my_drawtext: not yet implemented");
php_error(E_WARNING, "module_name_drawtext: not yet implemented");
}
/* }}} */

View File

@ -50,6 +50,14 @@ Please make the mail subject prefix "[PATCH]". If attaching a patch,
ensure it has a file extension of ".txt". This is because only MIME
attachments of type 'text/*' are accepted.
Preferred way to propose PHP patch is sending pull request from github.
https://github.com/php/php-src
Fork official PHP repository and send pull request. It will be notified
to pull request mailing list. You can add pull requests to
http://bugs.php.net/ reports also.
PHP Documentation Patches
-------------------------