summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYasuo Ohgaki <yohgaki@php.net>2014-01-26 18:28:21 +0900
committerStanislav Malyshev <stas@php.net>2014-01-26 17:20:12 -0800
commit60bcf84ddaa281f1e803b11a7db77d8a7f8c58c6 (patch)
treeddfd36b5a85c358fc05b1d906a9b8f3d97d970ba
parentd5560faaa3595c4aaf46329e4714432c42244503 (diff)
downloadphp-git-60bcf84ddaa281f1e803b11a7db77d8a7f8c58c6.tar.gz
Update source docs
-rw-r--r--CODING_STANDARDS25
-rw-r--r--README.EXTENSIONS8
-rw-r--r--README.EXT_SKEL30
-rw-r--r--README.SUBMITTING_PATCH8
4 files changed, 62 insertions, 9 deletions
diff --git a/CODING_STANDARDS b/CODING_STANDARDS
index 7a0562e6ca..fccc2b873d 100644
--- a/CODING_STANDARDS
+++ b/CODING_STANDARDS
@@ -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
diff --git a/README.EXTENSIONS b/README.EXTENSIONS
index 06d6cdd85f..e802af8329 100644
--- a/README.EXTENSIONS
+++ b/README.EXTENSIONS
@@ -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:
diff --git a/README.EXT_SKEL b/README.EXT_SKEL
index d44fcc5c6a..20b684ddfa 100644
--- a/README.EXT_SKEL
+++ b/README.EXT_SKEL
@@ -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");
}
/* }}} */
diff --git a/README.SUBMITTING_PATCH b/README.SUBMITTING_PATCH
index 63b7156f10..57bd2881b8 100644
--- a/README.SUBMITTING_PATCH
+++ b/README.SUBMITTING_PATCH
@@ -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
-------------------------