Skip to content
Browse files

This commit was manufactured by cvs2svn to create tag 'RELEASE_2_0_0a2'.

  • Loading branch information...
1 parent a090d45 commit dd18f2b304fbd86efa2cab45f414e9f044712607 SVN Migration committed Mar 27, 2008
Showing with 0 additions and 93,728 deletions.
  1. +0 −492 .gdbinit
  2. +0 −277 CODING_STANDARDS
  3. +0 −2 CREDITS
  4. +0 −83,532 ChangeLog
  5. BIN ChangeLog.1999.gz
  6. BIN ChangeLog.2000.gz
  7. BIN ChangeLog.2001.gz
  8. BIN ChangeLog.2002.gz
  9. BIN ChangeLog.2003.gz
  10. BIN ChangeLog.2004.gz
  11. BIN ChangeLog.2005.gz
  12. +0 −519 EXTENSIONS
  13. +0 −1,540 INSTALL
  14. +0 −68 LICENSE
  15. +0 −23 Makefile.frag
  16. +0 −76 Makefile.gcov
  17. +0 −150 Makefile.global
  18. +0 −55 NEWS
  19. +0 −141 README.CVS-RULES
  20. +0 −39 README.EXTENSIONS
  21. +0 −194 README.EXT_SKEL
  22. +0 −79 README.MAILINGLIST_RULES
  23. +0 −142 README.NEW-OUTPUT-API
  24. +0 −252 README.PARAMETER_PARSING_API
  25. +0 −11 README.PEAR
  26. +0 −155 README.PHP4-TO-PHP5-THIN-CHANGES
  27. +0 −57 README.QNX
  28. +0 −208 README.RELEASE_PROCESS
  29. +0 −155 README.SELF-CONTAINED-EXTENSIONS
  30. +0 −379 README.STREAMS
  31. +0 −126 README.SUBMITTING_PATCH
  32. +0 −179 README.TESTING
  33. +0 −137 README.TESTING2
  34. +0 −644 README.UNICODE
  35. +0 −806 README.UNICODE-UPGRADES
  36. +0 −123 README.UNIX-BUILD-SYSTEM
  37. +0 −172 README.UPDATING_TO_PHP6
  38. +0 −174 README.WIN32-BUILD-SYSTEM
  39. +0 −112 README.Zeus
  40. +0 −193 README.input_filter
  41. +0 −174 README.namespaces
  42. +0 −152 TODO
  43. +0 −5 TODO-5.1
  44. +0 −109 TODO-PHP5
  45. +0 −26 TSRM/LICENSE
  46. +0 −6 TSRM/Makefile.am
  47. +0 −2 TSRM/TODO
  48. +0 −778 TSRM/TSRM.c
  49. +0 −186 TSRM/TSRM.dsp
  50. +0 −179 TSRM/TSRM.h
  51. +0 −1 TSRM/acconfig.h
  52. +0 −5 TSRM/acinclude.m4
  53. +0 −43 TSRM/build.mk
  54. +0 −33 TSRM/buildconf
  55. +0 −10 TSRM/config.w32
  56. +0 −31 TSRM/configure.in
  57. +0 −47 TSRM/readdir.h
  58. +0 −173 TSRM/threads.m4
  59. +0 −128 TSRM/tsrm.m4
  60. +0 −20 TSRM/tsrm_config.w32.h
  61. +0 −70 TSRM/tsrm_config_common.h
  62. +0 −240 TSRM/tsrm_nw.c
  63. +0 −29 TSRM/tsrm_nw.h
  64. +0 −63 TSRM/tsrm_strtok_r.c
  65. +0 −6 TSRM/tsrm_strtok_r.h
Sorry, we could not display the entire diff because too many files (8,972) changed.
View
492 .gdbinit
@@ -1,492 +0,0 @@
-define ____executor_globals
- if basic_functions_module.zts
- set $tsrm_ls = ts_resource_ex(0, 0)
- set $eg = ((zend_executor_globals) (*((void ***) $tsrm_ls))[executor_globals_id-1])
- else
- set $eg = executor_globals
- end
-end
-
-document ____executor_globals
- portable way of accessing executor_globals, set $eg
- ZTS detection is automatically based on ext/standard module struct
-end
-
-define dump_bt
- set $t = $arg0
- while $t
- printf "[0x%08x] ", $t
- if $t->function_state.function->common.function_name
- printf "%s() ", $t->function_state.function->common.function_name
- else
- printf "??? "
- end
- if $t->op_array != 0
- printf "%s:%d ", $t->op_array->filename, $t->opline->lineno
- end
- set $t = $t->prev_execute_data
- printf "\n"
- end
-end
-
-document dump_bt
- dumps the current execution stack. usage: dump_bt executor_globals.current_execute_data
-end
-
-define printztype
- ____printz_type $arg0
- printf "\n"
-end
-
-document printztype
- prints the type name of a zval type
-end
-
-define ____printz_type
- set $type = $arg0
- if $type == 0
- printf "NULL"
- end
- if $type == 1
- printf "long"
- end
- if $type == 2
- printf "double"
- end
- if $type == 3
- printf "bool"
- end
- if $type == 4
- printf "array"
- end
- if $type == 5
- printf "object"
- end
- if $type == 6
- printf "string"
- end
- if $type == 7
- printf "resource"
- end
- if $type == 8
- printf "constant"
- end
- if $type == 9
- printf "const_array"
- end
- if $type == 10
- printf "unicode string"
- end
- if $type > 10
- printf "unknown type %d", $type
- end
-end
-
-define printzv
- set $ind = 1
- ____printzv $arg0 0
-end
-
-document printzv
- prints zval contents
-end
-
-define ____printzv_contents
- set $zvalue = $arg0
- set $type = $zvalue->type
-
- printf "(refcount=%d", $zvalue->refcount
- if $zvalue->is_ref
- printf ",is_ref"
- end
- printf ") "
- if $type == 0
- printf "NULL"
- end
- ____printz_type $type
- if $type == 1
- printf ": %ld", $zvalue->value.lval
- end
- if $type == 2
- printf ": %lf", $zvalue->value.dval
- end
- if $type == 3
- if $zvalue->value.lval
- printf ": true"
- else
- printf ": false"
- end
- end
- if $type == 4
- printf "(%d): ", $zvalue->value.ht->nNumOfElements
- if ! $arg1
- printf "{\n"
- set $ind = $ind + 1
- ____print_ht $zvalue->value.ht 0 1
- set $ind = $ind - 1
- set $i = $ind
- while $i > 0
- printf " "
- set $i = $i - 1
- end
- printf "}"
- end
- set $type = 0
- end
- if $type == 5
- ____executor_globals
- set $handle = $zvalue->value.obj.handle
- set $handlers = $zvalue->value.obj.handlers
- if basic_functions_module.zts
- set $zobj = zend_objects_get_address($zvalue, $tsrm_ls)
- else
- set $zobj = zend_objects_get_address($zvalue)
- end
- if $handlers->get_class_entry == &zend_std_object_get_class
- set $cname = $zobj->ce.name.s
- else
- set $cname = "Unknown"
- end
- printf "(%s) #%d", $cname, $handle
- if ! $arg1
- if $handlers->get_properties == &zend_std_get_properties
- set $ht = $zobj->properties
- if $ht
- printf "(%d): ", $ht->nNumOfElements
- printf "{\n"
- set $ind = $ind + 1
- ____print_ht $ht 1 1
- set $ind = $ind - 1
- set $i = $ind
- while $i > 0
- printf " "
- set $i = $i - 1
- end
- printf "}"
- else
- echo "no properties found"
- end
- end
- end
- set $type = 0
- end
- if $type == 6
- printf "(%d): \"%s\"", $zvalue->value.str.len, $zvalue->value.str.val
- end
- if $type == 7
- printf ": #%d", $zvalue->value.lval
- end
- if $type == 8
- end
- if $type == 9
- end
- if $type == 10
- printf "(%d): [%p]", $zvalue->value.str.len, $zvalue->value.str.val
- end
- if $type > 10
- end
- printf "\n"
-end
-
-define ____printzv
- ____executor_globals
- set $zvalue = $arg0
-
- printf "[0x%08x] ", $zvalue
-
- if $zvalue == $eg.uninitialized_zval_ptr
- printf "*uninitialized* "
- end
-
- set $zcontents = (zval*) $zvalue
- if $arg1
- ____printzv_contents $zcontents $arg1
- else
- ____printzv_contents $zcontents 0
- end
-end
-
-define ____print_const_table
- set $ht = $arg0
- set $p = $ht->pListHead
-
- while $p != 0
- set $const = (zend_constant *) $p->pData
-
- set $i = $ind
- while $i > 0
- printf " "
- set $i = $i - 1
- end
-
- if $p->nKeyLength > 0
- printf "\"%s\" => ", $p->key.arKey.s
- else
- printf "%d => ", $p->h
- end
-
- ____printzv_contents &$const->value 0
- set $p = $p->pListNext
- end
-end
-
-define print_const_table
- set $ind = 1
- printf "[0x%08x] {\n", $arg0
- ____print_const_table $arg0
- printf "}\n"
-end
-
-define ____print_ht
- set $ht = $arg0
- set $obj = $arg1
- set $p = $ht->pListHead
-
- while $p != 0
- set $i = $ind
- while $i > 0
- printf " "
- set $i = $i - 1
- end
-
- if $p->nKeyLength > 0
- if $obj && $p->key.arKey.s[0] == 0
- if $p->key.arKey.s[1] == '*'
- printf "\"protected %s\" => ", $p->key.arKey.s+3
- else
- set $n = 1
- while $n < $p->nKeyLength && $p->key.arKey.s[$n] != 0
- set $n = $n + 1
- end
- printf "\"private %s::%s\" => ", $p->key.arKey.s+1, $p->key.arKey.s+$n+1
- end
- else
- printf "\"%s\" => ", $p->key.arKey.s
- end
- else
- printf "%d => ", $p->h
- end
-
- if $arg1 == 0
- printf "%p\n", (void*)$p->pData
- end
- if $arg1 == 1
- set $zval = *(zval **)$p->pData
- ____printzv $zval 1
- end
- if $arg1 == 2
- printf "%s\n", (char*)$p->pData
- end
-
- set $p = $p->pListNext
- end
-end
-
-define print_ht
- set $ind = 1
- printf "[0x%08x] {\n", $arg0
- ____print_ht $arg0 0 1
- printf "}\n"
-end
-
-document print_ht
- dumps elements of HashTable made of zval
-end
-
-define print_htptr
- set $ind = 1
- printf "[0x%08x] {\n", $arg0
- ____print_ht $arg0 0 0
- printf "}\n"
-end
-
-document print_htptr
- dumps elements of HashTable made of pointers
-end
-
-define print_htstr
- set $ind = 1
- printf "[0x%08x] {\n", $arg0
- ____print_ht $arg0 0 2
- printf "}\n"
-end
-
-document print_htstr
- dumps elements of HashTable made of strings
-end
-
-define ____print_ft
- set $ht = $arg0
- set $p = $ht->pListHead
-
- while $p != 0
- set $func = (zend_function*)$p->pData
-
- set $i = $ind
- while $i > 0
- printf " "
- set $i = $i - 1
- end
-
- if $p->nKeyLength > 0
- printf "\"%s\" => ", $p->key.arKey.s
- else
- printf "%d => ", $p->h
- end
-
- printf "\"%s\"\n", $func->common.function_name
- set $p = $p->pListNext
- end
-end
-
-define print_ft
- set $ind = 1
- printf "[0x%08x] {\n", $arg0
- ____print_ft $arg0
- printf "}\n"
-end
-
-document print_ft
- dumps a function table (HashTable)
-end
-
-define printzn
- ____executor_globals
- set $ind = 0
- set $znode = $arg0
- if $znode->op_type == 1
- set $optype = "IS_CONST"
- end
- if $znode->op_type == 2
- set $optype = "IS_TMP_VAR"
- end
- if $znode->op_type == 4
- set $optype = "IS_VAR"
- end
- if $znode->op_type == 8
- set $optype = "IS_UNUSED"
- end
-
- printf "[0x%08x] %s", $znode, $optype
-
- if $znode->op_type == 1
- printf ": "
- ____printzv &$znode->u.constant 0
- end
- if $znode->op_type == 2
- printf ": "
- set $tvar = (union _temp_variable *)((char *)$eg.current_execute_data->Ts + $znode->u.var)
- ____printzv ((union _temp_variable *)$tvar)->tmp_var 0
- end
- if $znode->op_type == 4
- printf ": "
- set $tvar = (union _temp_variable *)((char *)$eg.current_execute_data->Ts + $znode->u.var)
- ____printzv *$tvar->var.ptr_ptr 0
- end
- if $znode->op_type == 8
- printf "\n"
- end
-end
-
-document printzn
- print type and content of znode.
- usage: printzn &opline->op1
-end
-
-define printzops
- printf "op1 => "
- printzn &execute_data->opline.op1
- printf "op2 => "
- printzn &execute_data->opline.op2
- printf "result => "
- printzn &execute_data->opline.result
-end
-
-document printzops
- dump operands of the current opline
-end
-
-define zbacktrace
- ____executor_globals
- dump_bt $eg.current_execute_data
-end
-
-document zbacktrace
- prints backtrace.
- This command is almost a short cut for
- > (gdb) ____executor_globals
- > (gdb) dump_bt $eg.current_execute_data
-end
-
-define zmemcheck
- set $p = alloc_globals.head
- set $stat = "?"
- set $total_size = 0
- if $arg0 != 0
- set $not_found = 1
- else
- set $not_found = 0
- end
- printf " block size status file:line\n"
- printf "-------------------------------------------------------------------------------\n"
- while $p
- set $aptr = $p + sizeof(struct _zend_mem_header) + sizeof(align_test)
- if $arg0 == 0 || (void *)$aptr == (void *)$arg0
- if $p->magic == 0x7312f8dc
- set $stat = "OK"
- end
- if $p->magic == 0x99954317
- set $stat = "FREED"
- end
- if $p->magic == 0xfb8277dc
- set $stat = "CACHED"
- end
- set $filename = strrchr($p->filename, '/')
- if !$filename
- set $filename = $p->filename
- else
- set $filename = $filename + 1
- end
- printf " 0x%08x ", $aptr
- if $p->size == sizeof(struct _zval_struct) && ((struct _zval_struct *)$aptr)->type >= 0 && ((struct _zval_struct *)$aptr)->type < 10
- printf "ZVAL?(%-2d) ", $p->size
- else
- printf "%-9d ", $p->size
- end
- set $total_size = $total_size + $p->size
- printf "%-06s %s:%d", $stat, $filename, $p->lineno
- if $p->orig_filename
- set $orig_filename = strrchr($p->orig_filename, '/')
- if !$orig_filename
- set $orig_filename = $p->orig_filename
- else
- set $orig_filename = $orig_filename + 1
- end
- printf " <= %s:%d\n", $orig_filename, $p->orig_lineno
- else
- printf "\n"
- end
- if $arg0 != 0
- set $p = 0
- set $not_found = 0
- else
- set $p = $p->pNext
- end
- else
- set $p = $p->pNext
- end
- end
- if $not_found
- printf "no such block that begins at 0x%08x.\n", $aptr
- end
- if $arg0 == 0
- printf "-------------------------------------------------------------------------------\n"
- printf " total: %d bytes\n", $total_size
- end
-end
-
-document zmemcheck
- show status of a memory block.
- usage: zmemcheck [ptr].
- if ptr is 0, all blocks will be listed.
-end
View
277 CODING_STANDARDS
@@ -1,277 +0,0 @@
-========================
- PHP Coding Standards
-========================
-
-This file lists several standards that any programmer, adding or changing
-code in PHP, should follow. Since this file was added at a very late
-stage of the development of PHP v3.0, the code base does not (yet) fully
-follow it, but it's going in that general direction. Since we are now
-well into the version 4 releases, many sections have been recoded to use
-these rules.
-
-Code Implementation
--------------------
-
-0. Document your code in source files and the manual. [tm]
-
-1. Functions that are given pointers to resources should not free them
-
-For instance, ``function int mail(char *to, char *from)`` should NOT free
-to and/or from.
-Exceptions:
-
-- The function's designated behavior is freeing that resource. E.g. efree()
-
-- The function is given a boolean argument, that controls whether or not
- the function may free its arguments (if true - the function must free its
- arguments, if false - it must not)
-
-- Low-level parser routines, that are tightly integrated with the token
- cache and the bison code for minimum memory copying overhead.
-
-2. Functions that are tightly integrated with other functions within the
- same module, and rely on each other non-trivial behavior, should be
- documented as such and declared 'static'. They should be avoided if
- possible.
-
-3. Use definitions and macros whenever possible, so that constants have
- meaningful names and can be easily manipulated. The only exceptions
- to this rule are 0 and 1, when used as false and true (respectively).
- Any other use of a numeric constant to specify different behavior
- or actions should be done through a #define.
-
-4. When writing functions that deal with strings, be sure to remember
- that PHP holds the length property of each string, and that it
- shouldn't be calculated with strlen(). Write your functions in a such
- a way so that they'll take advantage of the length property, both
- for efficiency and in order for them to be binary-safe.
- Functions that change strings and obtain their new lengths while
- doing so, should return that new length, so it doesn't have to be
- recalculated with strlen() (e.g. php_addslashes())
-
-5. NEVER USE strncat(). If you're absolutely sure you know what you're doing,
- check its man page again, and only then, consider using it, and even then,
- try avoiding it.
-
-6. Use ``PHP_*`` macros in the PHP source, and ``ZEND_*`` macros in the Zend
- part of the source. Although the ``PHP_*`` macro's are mostly aliased to the
- ``ZEND_*`` macros it gives a better understanding on what kind of macro
- you're calling.
-
-7. When commenting out code using a #if statement, do NOT use 0 only. Instead
- use "<cvs username here>_0". For example, #if FOO_0, where FOO is your
- cvs user foo. This allows easier tracking of why code was commented out,
- especially in bundled libraries.
-
-8. Do not define functions that are not available. For instance, if a
- library is missing a function, do not define the PHP version of the
- function, and do not raise a run-time error about the function not
- existing. End users should use function_exists() to test for the
- existence of a function
-
-9. Prefer emalloc(), efree(), estrdup(), etc. to their standard C library
- counterparts. These functions implement an internal "safety-net"
- mechanism that ensures the deallocation of any unfreed memory at the
- end of a request. They also provide useful allocation and overflow
- information while running in debug mode.
-
- In almost all cases, memory returned to the engine must be allocated
- using emalloc().
-
- The use of malloc() should be limited to cases where a third-party
- library may need to control or free the memory, or when the memory in
- question needs to survive between multiple requests.
-
-Naming Conventions
-------------------
-
-1. Function names for user-level functions should be enclosed with in
- the PHP_FUNCTION() macro. They should be in lowercase, with words
- underscore delimited, with care taken to minimize the letter count.
- Abbreviations should not be used when they greatly decrease the
- readability of the function name itself::
-
- Good:
- 'mcrypt_enc_self_test'
- 'mysql_list_fields'
-
- Ok:
- 'mcrypt_module_get_algo_supported_key_sizes'
- (could be 'mcrypt_mod_get_algo_sup_key_sizes'?)
- 'get_html_translation_table'
- (could be 'html_get_trans_table'?)
-
- Bad:
- 'hw_GetObjectByQueryCollObj'
- 'pg_setclientencoding'
- 'jf_n_s_i'
-
-2. If they are part of a "parent set" of functions, that parent should
- be included in the user function name, and should be clearly related
- to the parent program or function family. This should be in the form
- of ``parent_*``::
-
- A family of 'foo' functions, for example:
- Good:
- 'foo_select_bar'
- 'foo_insert_baz'
- 'foo_delete_baz'
-
- Bad:
- 'fooselect_bar'
- 'fooinsertbaz'
- 'delete_foo_baz'
-
-3. Function names used by user functions should be prefixed
- with ``_php_``, and followed by a word or an underscore-delimited list of
- words, in lowercase letters, that describes the function. If applicable,
- they should be declared 'static'.
-
-4. Variable names must be meaningful. One letter variable names must be
- avoided, except for places where the variable has no real meaning or
- a trivial meaning (e.g. for (i=0; i<100; i++) ...).
-
-5. Variable names should be in lowercase. Use underscores to separate
- between words.
-
-6. Method names follow the 'studlyCaps' (also referred to as 'bumpy case'
- or 'camel caps') naming convention, with care taken to minimize the
- letter count. The initial letter of the name is lowercase, and each
- letter that starts a new 'word' is capitalized::
-
- Good:
- 'connect()'
- 'getData()'
- 'buildSomeWidget()'
-
- Bad:
- 'get_Data()'
- 'buildsomewidget'
- 'getI()'
-
-7. Classes should be given descriptive names. Avoid using abbreviations where
- possible. Each word in the class name should start with a capital letter,
- without underscore delimiters (CampelCaps starting with a capital letter).
- The class name should be prefixed with the name of the 'parent set' (e.g.
- the name of the extension)::
-
- Good:
- 'Curl'
- 'FooBar'
-
- Bad:
- 'foobar'
- 'foo_bar'
-
-Syntax and indentation
-----------------------
-
-1. Never use C++ style comments (i.e. // comment). Always use C-style
- comments instead. PHP is written in C, and is aimed at compiling
- under any ANSI-C compliant compiler. Even though many compilers
- accept C++-style comments in C code, you have to ensure that your
- code would compile with other compilers as well.
- The only exception to this rule is code that is Win32-specific,
- because the Win32 port is MS-Visual C++ specific, and this compiler
- is known to accept C++-style comments in C code.
-
-2. Use K&R-style. Of course, we can't and don't want to
- force anybody to use a style he or she is not used to, but,
- at the very least, when you write code that goes into the core
- 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_.
-
-.. _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
- between logical statement groups in a block. Maintain at least one empty
- line between two functions, preferably two. Always prefer::
-
- if (foo) {
- bar;
- }
-
- to:
-
- if(foo)bar;
-
-4. When indenting, use the tab character. A tab is expected to represent
- four spaces. It is important to maintain consistency in indenture so
- that definitions, comments, and control structures line up correctly.
-
-5. Preprocessor statements (#if and such) MUST start at column one. To
- indent preprocessor directives you should put the # at the beginning
- of a line, followed by any number of whitespace.
-
-Testing
--------
-
-1. Extensions should be well tested using *.phpt tests. Read about that
- in README.TESTING.
-
-Documentation and Folding Hooks
--------------------------------
-
-In order to make sure that the online documentation stays in line with
-the code, each user-level function should have its user-level function
-prototype before it along with a brief one-line description of what the
-function does. It would look like this::
-
- /* {{{ proto int abs(int number)
- Returns the absolute value of the number */
- PHP_FUNCTION(abs)
- {
- ...
- }
- /* }}} */
-
-The {{{ symbols are the default folding symbols for the folding mode in
-Emacs and vim (set fdm=marker). Folding is very useful when dealing with
-large files because you can scroll through the file quickly and just unfold
-the function you wish to work on. The }}} at the end of each function marks
-the end of the fold, and should be on a separate line.
-
-The "proto" keyword there is just a helper for the doc/genfuncsummary script
-which generates a full function summary. Having this keyword in front of the
-function prototypes allows us to put folds elsewhere in the code without
-messing up the function summary.
-
-Optional arguments are written like this::
-
- /* {{{ proto object imap_header(int stream_id, int msg_no [, int from_length [, int subject_length [, string default_host]]])
- Returns a header object with the defined parameters */
-
-And yes, please keep the prototype on a single line, even if that line
-is massive.
-
-New and Experimental Functions
------------------------------------
-To reduce the problems normally associated with the first public
-implementation of a new set of functions, it has been suggested
-that the first implementation include a file labeled 'EXPERIMENTAL'
-in the function directory, and that the functions follow the
-standard prefixing conventions during their initial implementation.
-
-The file labelled 'EXPERIMENTAL' should include the following
-information::
-
- Any authoring information (known bugs, future directions of the module).
- Ongoing status notes which may not be appropriate for CVS comments.
-
-Aliases & Legacy Documentation
------------------------------------
-You may also have some deprecated aliases with close to duplicate
-names, for example, somedb_select_result and somedb_selectresult. For
-documentation purposes, these will only be documented by the most
-current name, with the aliases listed in the documentation for
-the parent function. For ease of reference, user-functions with
-completely different names, that alias to the same function (such as
-highlight_file and show_source), will be separately documented. The
-proto should still be included, describing which function is aliased.
-
-Backwards compatible functions and names should be maintained as long
-as the code can be reasonably be kept as part of the codebase. See
-/phpdoc/README for more information on documentation.
View
2 CREDITS
@@ -1,2 +0,0 @@
-For the list of people who've put work into PHP, please see
-http://www.php.net/credits.php
View
83,532 ChangeLog
0 additions, 83,532 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
BIN ChangeLog.1999.gz
Binary file not shown.
View
BIN ChangeLog.2000.gz
Binary file not shown.
View
BIN ChangeLog.2001.gz
Binary file not shown.
View
BIN ChangeLog.2002.gz
Binary file not shown.
View
BIN ChangeLog.2003.gz
Binary file not shown.
View
BIN ChangeLog.2004.gz
Binary file not shown.
View
BIN ChangeLog.2005.gz
Binary file not shown.
View
519 EXTENSIONS
@@ -1,519 +0,0 @@
- List of PHP maintainers
- =======================
-
-Maintenance legend
-------------------
- Supported: Someone is actually paid to look after this.
- Maintained: Someone actually looks after it.
- Odd Fixes: It has a maintainer but they don't have time to do
- much other than throw the odd patch in. See below.
- Orphan: No current maintainer [but maybe you could take the
- role as you write your new code].
- Obsolete: Old code. Something tagged obsolete generally means
- it has been replaced by a better system and you
- should be using that.
- Unknown: Not known at this time.
-
-Status legend
--------------
- Working: Working under both Windows and Unix.
- Windows: Working only under Windows.
- Unix: Working only under Unix.
- Experimental: Under development or initial release.
- Not Working: Not working.
- Unknown: Status unknown.
-
-
-== Server APIs ==
-
--------------------------------------------------------------------------------
-EXTENSION: aolserver
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: apache
-PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: apache_hooks
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: apache2filter
-PRIMARY MAINTAINER: Aaron Bannert <aaron@php.net>
-MAINTENANCE: Maintained
-STATUS: Experimental
--------------------------------------------------------------------------------
-EXTENSION: apache2handler
-PRIMARY MAINTAINER: Aaron Bannert <aaron@php.net>, Ilia Alshanetsky <iliaa@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: caudium
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: cgi
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: cli
-MAINTENANCE: Marcus Boerger <helly@php.net>, Edin Kadribasic <edink@php.net>
-STATUS: Working
-SINCE: 4.3.0
--------------------------------------------------------------------------------
-EXTENSION: continuity
-PRIMARY MAINTAINER: Alex Leigh <aleigh@php.net>
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: embed
-PRIMARY MAINTAINER: Edin Kadribasic <edink@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: isapi
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: milter
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: nsapi
-PRIMARY MAINTAINER: Uwe Schindler <thetaphi@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: phttpd
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: pi3web
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: roxen
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: thttpd
-PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
-MAINTENANCE: Odd fixes
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: tux
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: webjames
-PRIMARY MAINTAINER: Alex Waugh <alex@alexwaugh.com>
-MAINTENANCE: Maintained
-STATUS: Experimental
--------------------------------------------------------------------------------
-
-
-== Database extensions ==
-
--------------------------------------------------------------------------------
-EXTENSION: dba
-PRIMARY MAINTAINER: Marcus B�rger <helly@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-COMMENT: DBM abstraction for db2, db3, db4, dbm, ndbm, gdbm, ini
--------------------------------------------------------------------------------
-EXTENSION: dbase
-MAINTENANCE: Orphaned
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: fbsql
-PRIMARY MAINTAINER: Frank M. Kromann <fmk@swwwing.com>
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: interbase
-PRIMARY MAINTAINER: Ard Biesheuvel <ard@ard.nu>, Jouni Ahto <jouni.ahto@exdec.fi>
-MAINTENANCE: Odd fixes
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: msql
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: mssql
-PRIMARY MAINTAINER: Frank M. Kromann <fmk@swwwing.com>
-MAINTENANCE: Maintained
-STATUS: Working
-COMMENT: Tested on phpts and isapi versions
--------------------------------------------------------------------------------
-EXTENSION: mysql
-PRIMARY MAINTAINER: Zak Greant <zak@mysql.com>, Georg Richter <georg@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: mysqli
-PRIMARY MAINTAINER: Georg Richter <georg@php.net>, Andrey Hristov <andrey@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 5.0
--------------------------------------------------------------------------------
-EXTENSION: oci8
-PRIMARY MAINTAINER: Christopher Jones <sixd@php.net>, Antony Dovgal <tony2001@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: odbc
-PRIMARY MAINTAINER: Daniel R. Kalowsky <kalowsky@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-COMMENT: Working
--------------------------------------------------------------------------------
-EXTENSION: pdo
-PRIMARY MAINTAINER: Unknown
-MAINTENANCE: Odd fixes
-STATUS: Working
-SINCE: 5.1
--------------------------------------------------------------------------------
-EXTENSION: pdo_dblib
-PRIMARY MAINTAINER: Unknown
-MAINTENANCE: Odd fixes
-STATUS: Working
-SINCE: 5.1
--------------------------------------------------------------------------------
-EXTENSION: pdo_firebird
-PRIMARY MAINTAINER: Lars Westermann <lwe@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 5.1
--------------------------------------------------------------------------------
-EXTENSION: pdo_mysql
-PRIMARY MAINTAINER: Unknown
-MAINTENANCE: Odd fixes
-STATUS: Working
-SINCE: 5.1
--------------------------------------------------------------------------------
-EXTENSION: pdo_odbc
-PRIMARY MAINTAINER: Unknown
-MAINTENANCE: Odd fixes
-STATUS: Working
-SINCE: 5.1
--------------------------------------------------------------------------------
-EXTENSION: pdo_oci
-PRIMARY MAINTAINER: Unknown
-MAINTENANCE: Odd fixes
-STATUS: Working
-SINCE: 5.1
--------------------------------------------------------------------------------
-EXTENSION: pdo_pgsql
-PRIMARY MAINTAINER: Unknown
-MAINTENANCE: Odd fixes
-STATUS: Working
-SINCE: 5.1
--------------------------------------------------------------------------------
-EXTENSION: pdo_sqlite
-PRIMARY MAINTAINER: Unknown
-MAINTENANCE: Odd fixes
-STATUS: Working
-SINCE: 5.1
--------------------------------------------------------------------------------
-EXTENSION: pgsql
-PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>, Yasuo Ohgaki <yohgaki@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-COMMENT: Use PostgreSQL 7.0.x or later. PostgreSQL 6.5.3 or less have fatal bug.
--------------------------------------------------------------------------------
-EXTENSION: sqlite
-PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>, Wez Furlong <wez@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 5.0 (Since 4.3.2 in PECL)
-COMMENT: Integrates SQLite embeddable SQL database engine.
--------------------------------------------------------------------------------
-EXTENSION: sybase
-MAINTENANCE: Unknown
-STATUS: Not Working
--------------------------------------------------------------------------------
-EXTENSION: sybase_ct
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-
-
-== XML extensions ==
-
--------------------------------------------------------------------------------
-EXTENSION: dom
-PRIMARY MAINTAINER: Christian Stocker <chregu@php.net>, Rob Richards <rrichards@php.net>, Marcus Boerger <helly@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 5.0
--------------------------------------------------------------------------------
-EXTENSION: simplexml
-PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 5.0
--------------------------------------------------------------------------------
-EXTENSION: soap
-PRIMARY MAINTAINER: Dmitry Stogov <dmitry@zend.com>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: wddx
-PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
-MAINTENANCE: Orphaned
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: xml
-PRIMARY MAINTAINER: Thies C. Arntzen <thies@thieso.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: xmlreader
-PRIMARY MAINTAINER: Rob Richards <rrichards@php.net>, Christian Stocker <chregu@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: xmlrpc
-PRIMARY MAINTAINER: Dan Libby
-MAINTENANCE: Orphaned
-STATUS: Experimental
--------------------------------------------------------------------------------
-EXTENSION: xmlwriter
-PRIMARY MAINTAINER: Rob Richards <rrichards@php.net>, Pierre-Alain Joye <pajoye@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: xsl
-PRIMARY MAINTAINER: Christian Stocker <chregu@php.net>, Rob Richards <rrichards@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 5.0
--------------------------------------------------------------------------------
-
-
-== Other extensions ==
-
--------------------------------------------------------------------------------
-EXTENSION: bcmath
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: bz2
-PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
-MAINTENANCE: Odd Fixes
-STATUS: Working
-SINCE: 4.0.3
--------------------------------------------------------------------------------
-EXTENSION: calendar
-PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
-MAINTENANCE: Odd Fixes
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: com_dotnet
-PRIMARY MAINTAINER: Wez Furlong <wez@php.net>
-MAINTENANCE: Maintained
-STATUS: Windows
-SINCE: 5.0
--------------------------------------------------------------------------------
-EXTENSION: ctype
-PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: curl
-PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>,Ilia Alshanetsky <iliaa@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 4.0.2
--------------------------------------------------------------------------------
-EXTENSION: date
-PRIMARY MAINTAINER: Derick Rethans <derick@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: exif
-PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 4.2
--------------------------------------------------------------------------------
-EXTENSION: filter
-PRIMARY MAINTAINER: Derick Rethans <derick@php.net>, Pierre-Alain Joye <pajoye@php.net>, Ilia Alshanetsky <iliaa@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 5.2
--------------------------------------------------------------------------------
-EXTENSION: ftp
-PRIMARY MAINTAINER: Stefan Esser <sesser@php.net>
-MAINTENANCE: Odd fixes
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: gd
-PRIMARY MAINTAINER: Pierre-Alain Joye <pajoye@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: gettext
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: gmp
-PRIMARY MAINTAINER: Stanislav Malyshev <stas@php.net>, Antony Dovgal <tony2001@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 4.0.4
--------------------------------------------------------------------------------
-EXTENSION: iconv
-PRIMARY MAINTAINER: Moriyoshi Koizumi <moriyoshi@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: imap
-PRIMARY MAINTAINER: Chuck Hagenbuch <chuck@horde.org>, Ilia Alshanetsky <iliaa@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: json
-PRIMARY MAINTAINER: Unknown
-MAINTENANCE: Odd fixes
-STATUS: Working
-SINCE: 5.2
--------------------------------------------------------------------------------
-EXTENSION: ldap
-PRIMARY MAINTAINER: Stig Venaas <venaas@php.net>, Douglas Goldstein <cardoe@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: mbstring
-PRIMARY MAINTAINER: Rui Hirokawa <hirokawa@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: mcrypt
-PRIMARY MAINTAINER: Derick Rethans <derick@derickrethans.nl>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: mhash
-PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: mime_magic
-PRIMARY MAINTAINER: Unknown
-MAINTENANCE: Deprecated
-STATUS: Experimental
-COMMENT: Use PECL's fileinfo extension instead
--------------------------------------------------------------------------------
-EXTENSION: ming
-PRIMARY MAINTAINER: Frank M. Kromann
-MAINTENANCE: Unknown
-STATUS: Experimental
--------------------------------------------------------------------------------
-EXTENSION: ncurses
-PRIMARY MAINTAINER Ilia Alshanetsky <iliaa@php.net>, Wez Furlong <wez@php.net>, Hartmut Holzgraefe <hholzgra@php.net>, Georg Richter <georg@php.net>
-MAINTENANCE: Unknown
-STATUS: Experimental
--------------------------------------------------------------------------------
-EXTENSION: openssl
-PRIMARY MAINTAINER: Wez Furlong <wez@php.net>, Pierre-Alain Joye <pajoye@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 4.0.4
--------------------------------------------------------------------------------
-EXTENSION: pcntl
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: pcre
-PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>, Nuno Lopes <nlopess@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: posix
-PRIMARY MAINTAINER: Kristian K�hntopp <kris@koehntopp.de>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: pspell
-PRIMARY MAINTAINER: Vlad Krupin <phpdevel@echospace.com>
-MAINTENANCE: Unknown
-STATUS: Working
-SINCE: 4.0.2
--------------------------------------------------------------------------------
-EXTENSION: readline
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: recode
-PRIMARY MAINTAINER: Kristian K�hntopp <kris@koehntopp.de>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: reflection
-PRIMARY MAINTAINER: Marcus B�rger <helly@php.net>, Johannes Schl�ter <johannes@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: session
-PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>, Ilia Alshanetsky <iliaa@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: shmop
-PRIMARY MAINTAINER: Ilia Alshanetsky <iliaa@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 4.0.3
--------------------------------------------------------------------------------
-EXTENSION: snmp
-PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
-MAINTENANCE: Odd Fixes
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: sockets
-PRIMARY MAINTAINER: Chris Vandomelen <chrisv@b0rked.dhs.org>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 4.0.2
--------------------------------------------------------------------------------
-EXTENSION: spl
-PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 5.0.0
--------------------------------------------------------------------------------
-EXTENSION: sysvmsg
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: sysvsem
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: sysvshm
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: tidy
-PRIMARY MAINTAINER: John Coggeshall <john@php.net>, Ilia Alshanetsky <iliaa@php.net>, Nuno Lopes <nlopess@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: tokenizer
-PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: zip
-PRIMARY MAINTAINER: Pierre-Alain Joye <pajoye@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: zlib
-PRIMARY MAINTAINER: Stefan Roehrich <sr@linux.de>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
View
1,540 INSTALL
0 additions, 1,540 deletions not shown because the diff is too large. Please use a local Git client to view these changes.
View
68 LICENSE
@@ -1,68 +0,0 @@
---------------------------------------------------------------------
- The PHP License, version 3.01
-Copyright (c) 1999 - 2006 The PHP Group. All rights reserved.
---------------------------------------------------------------------
-
-Redistribution and use in source and binary forms, with or without
-modification, is permitted provided that the following conditions
-are met:
-
- 1. Redistributions of source code must retain the above copyright
- notice, this list of conditions and the following disclaimer.
-
- 2. Redistributions in binary form must reproduce the above copyright
- notice, this list of conditions and the following disclaimer in
- the documentation and/or other materials provided with the
- distribution.
-
- 3. The name "PHP" must not be used to endorse or promote products
- derived from this software without prior written permission. For
- written permission, please contact group@php.net.
-
- 4. Products derived from this software may not be called "PHP", nor
- may "PHP" appear in their name, without prior written permission
- from group@php.net. You may indicate that your software works in
- conjunction with PHP by saying "Foo for PHP" instead of calling
- it "PHP Foo" or "phpfoo"
-
- 5. The PHP Group may publish revised and/or new versions of the
- license from time to time. Each version will be given a
- distinguishing version number.
- Once covered code has been published under a particular version
- of the license, you may always continue to use it under the terms
- of that version. You may also choose to use such covered code
- under the terms of any subsequent version of the license
- published by the PHP Group. No one other than the PHP Group has
- the right to modify the terms applicable to covered code created
- under this License.
-
- 6. Redistributions of any form whatsoever must retain the following
- acknowledgment:
- "This product includes PHP software, freely available from
- <http://www.php.net/software/>".
-
-THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND
-ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
-PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PHP
-DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
-OF THE POSSIBILITY OF SUCH DAMAGE.
-
---------------------------------------------------------------------
-
-This software consists of voluntary contributions made by many
-individuals on behalf of the PHP Group.
-
-The PHP Group can be contacted via Email at group@php.net.
-
-For more information on the PHP Group and the PHP project,
-please see <http://www.php.net>.
-
-PHP includes the Zend Engine, freely available at
-<http://www.zend.com>.
View
23 Makefile.frag
@@ -1,23 +0,0 @@
-
-#
-# Zend
-#
-
-$(builddir)/zend_language_scanner.lo: $(srcdir)/zend_language_parser.h
-$(builddir)/zend_ini_scanner.lo: $(srcdir)/zend_ini_parser.h
-
-$(srcdir)/zend_language_scanner.c: $(srcdir)/zend_language_scanner.l
- @(cd $(top_srcdir); $(RE2C) $(RE2C_FLAGS) --case-inverted -cbdFt Zend/zend_language_scanner_defs.h -oZend/zend_language_scanner.c Zend/zend_language_scanner.l)
-
-$(srcdir)/zend_language_parser.h: $(srcdir)/zend_language_parser.c
-$(srcdir)/zend_language_parser.c: $(srcdir)/zend_language_parser.y
- @$(YACC) -p zend -v -d $(srcdir)/zend_language_parser.y -o $@
-
-$(srcdir)/zend_ini_parser.h: $(srcdir)/zend_ini_parser.c
-$(srcdir)/zend_ini_parser.c: $(srcdir)/zend_ini_parser.y
- @$(YACC) -p ini_ -v -d $(srcdir)/zend_ini_parser.y -o $@
-
-$(srcdir)/zend_ini_scanner.c: $(srcdir)/zend_ini_scanner.l
- @(cd $(top_srcdir); $(RE2C) $(RE2C_FLAGS) --case-inverted -cbdFt Zend/zend_ini_scanner_defs.h -oZend/zend_ini_scanner.c Zend/zend_ini_scanner.l)
-
-$(builddir)/zend_indent.lo $(builddir)/zend_highlight.lo $(builddir)/zend_compile.lo: $(srcdir)/zend_language_parser.h
View
76 Makefile.gcov
@@ -1,76 +0,0 @@
-
-#
-# LCOV
-#
-
-lcov: lcov-html
-
-lcov-test: all
- @echo "Running test suite"
- @find . -name \*.gcda -o -name \*.da -o -name \*.bbg? | xargs rm -f
- -@if test ! -z "$(PHP_EXECUTABLE)" && test -x "$(PHP_EXECUTABLE)"; then \
- NO_INTERACTION=1 \
- TEST_PHP_EXECUTABLE=$(PHP_EXECUTABLE) \
- TEST_PHP_SRCDIR=$(top_srcdir) \
- CC="$(CC)" \
- $(PHP_EXECUTABLE) -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' $(top_srcdir)/run-tests.php -d 'extension_dir=modules/' -d `( . $(PHP_MODULES) ; echo extension=$$dlname)` tests/; \
- elif test ! -z "$(SAPI_CLI_PATH)" && test -x "$(SAPI_CLI_PATH)"; then \
- NO_INTERACTION=1 \
- TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
- TEST_PHP_SRCDIR=$(top_srcdir) \
- CC="$(CC)" \
- $(top_builddir)/$(SAPI_CLI_PATH) -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1' $(top_srcdir)/run-tests.php $(TESTS); \
- else \
- echo "ERROR: Cannot run tests without CLI sapi."; \
- fi
-
-php_lcov.info: lcov-test
- @echo "Generating data for $@"
- @rm -rf lcov_data/
- @$(mkinstalldirs) lcov_data/
- @echo
- -@find . -name \*.gcda -o -name \*.gcno -o -name \*.da -o -name \*.h | sed -e 's/^\.\///' | sed -e 's/\.gcda//g' -e 's/\.gcno//g' -e 's/\.da//g' | uniq | while read x; do \
- echo -n . ;\
- y=`echo $$x | sed -e 's!\.libs/!!'`; \
- dir=lcov_data/`dirname $$x`; \
- test -d "$$dir" || $(mkinstalldirs) "$$dir"; \
- if test -f "$(top_srcdir)/$$y.c"; then \
- ln -f -s $(top_srcdir)/$$y.c lcov_data/$$y.c; \
- fi; \
- if test -f "$(top_srcdir)/$$y.h"; then \
- ln -f -s $(top_srcdir)/$$y.h lcov_data/$$y.h; \
- fi; \
- if test -f "$(top_srcdir)/$$y.re"; then \
- ln -f -s $(top_srcdir)/$$y.re lcov_data/$$y.re; \
- fi; \
- if test -f "$(top_srcdir)/$$y.y"; then \
- ln -f -s $(top_srcdir)/$$y.y lcov_data/$$y.y; \
- fi; \
- if test -f "$(top_srcdir)/$$y.l"; then \
- ln -f -s $(top_srcdir)/$$y.l lcov_data/$$y.l; \
- fi; \
- if test -f "$(top_srcdir)/$$y"; then \
- ln -f -s $(top_srcdir)/$$y lcov_data/$$y; \
- fi; \
- if test -f "$(top_builddir)/$$y.c"; then \
- ln -f -s $(top_builddir)/$$y.c lcov_data/$$y.c; \
- fi; \
- test -f "$$x.gcno" && cp $$x.gcno lcov_data/$$y.gcno ; \
- test -f "$$x.gcda" && cp $$x.gcda lcov_data/$$y.gcda ; \
- test -f "$$x.da" && cp $$x.da lcov_data/$$y.da ; \
- test -f "$$x.bb" && cp $$x.bb lcov_data/$$y.bb ; \
- test -f "$$x.bbg" && cp $$x.bbg lcov_data/$$y.bbg ; \
- done
- @echo
- @echo "Generating $@"
- @$(LTP) --directory lcov_data/ --capture --base-directory=lcov_data --output-file $@
-
-lcov-html: php_lcov.info
- @echo "Generating lcov HTML"
- @$(LTP_GENHTML) --legend --output-directory lcov_html/ --title "PHP Code Coverage" php_lcov.info
-
-lcov-clean:
- rm -f php_lcov.info
- rm -rf lcov_data/
- rm -rf lcov_html/
-
View
150 Makefile.global
@@ -1,150 +0,0 @@
-mkinstalldirs = $(top_srcdir)/build/shtool mkdir -p
-INSTALL = $(top_srcdir)/build/shtool install -c
-INSTALL_DATA = $(INSTALL) -m 644
-
-DEFS = -DPHP_ATOM_INC -I$(top_builddir)/include -I$(top_builddir)/main -I$(top_srcdir)
-COMMON_FLAGS = $(DEFS) $(INCLUDES) $(EXTRA_INCLUDES) $(CPPFLAGS) $(PHP_FRAMEWORKPATH)
-
-all: $(all_targets)
- @echo
- @echo "Build complete."
- @echo "Don't forget to run 'make test'."
- @echo
-
-build-modules: $(PHP_MODULES) $(PHP_ZEND_EX)
-
-libphp$(PHP_MAJOR_VERSION).la: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
- $(LIBTOOL) --mode=link $(CC) $(CFLAGS) $(EXTRA_CFLAGS) -rpath $(phptempdir) $(EXTRA_LDFLAGS) $(LDFLAGS) $(PHP_RPATHS) $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@
- -@$(LIBTOOL) --silent --mode=install cp $@ $(phptempdir)/$@ >/dev/null 2>&1
-
-libs/libphp$(PHP_MAJOR_VERSION).bundle: $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS)
- $(CC) $(MH_BUNDLE_FLAGS) $(CFLAGS_CLEAN) $(EXTRA_CFLAGS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(PHP_GLOBAL_OBJS:.lo=.o) $(PHP_SAPI_OBJS:.lo=.o) $(PHP_FRAMEWORKS) $(EXTRA_LIBS) $(ZEND_EXTRA_LIBS) -o $@ && cp $@ libs/libphp$(PHP_MAJOR_VERSION).so
-
-install: $(all_targets) $(install_targets)
-
-install-sapi: $(OVERALL_TARGET)
- @echo "Installing PHP SAPI module: $(PHP_SAPI)"
- -@$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
- -@if test ! -r $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME); then \
- for i in 0.0.0 0.0 0; do \
- if test -r $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME).$$i; then \
- $(LN_S) $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME).$$i $(phptempdir)/libphp$(PHP_MAJOR_VERSION).$(SHLIB_DL_SUFFIX_NAME); \
- break; \
- fi; \
- done; \
- fi
- @$(INSTALL_IT)
-
-install-modules: build-modules
- @test -d modules && \
- $(mkinstalldirs) $(INSTALL_ROOT)$(EXTENSION_DIR)
- @echo "Installing shared extensions: $(INSTALL_ROOT)$(EXTENSION_DIR)/"
- @rm -f modules/*.la >/dev/null 2>&1
- @$(INSTALL) modules/* $(INSTALL_ROOT)$(EXTENSION_DIR)
-
-install-headers:
- -@if test "$(INSTALL_HEADERS)"; then \
- for i in `echo $(INSTALL_HEADERS)`; do \
- i=`$(top_srcdir)/build/shtool path -d $$i`; \
- paths="$$paths $(INSTALL_ROOT)$(phpincludedir)/$$i"; \
- done; \
- $(mkinstalldirs) $$paths && \
- echo "Installing header files: $(INSTALL_ROOT)$(phpincludedir)/" && \
- for i in `echo $(INSTALL_HEADERS)`; do \
- if test "$(PHP_PECL_EXTENSION)"; then \
- src=`echo $$i | $(SED) -e "s#ext/$(PHP_PECL_EXTENSION)/##g"`; \
- else \
- src=$$i; \
- fi; \
- if test -f "$(top_srcdir)/$$src"; then \
- $(INSTALL_DATA) $(top_srcdir)/$$src $(INSTALL_ROOT)$(phpincludedir)/$$i; \
- elif test -f "$(top_builddir)/$$src"; then \
- $(INSTALL_DATA) $(top_builddir)/$$src $(INSTALL_ROOT)$(phpincludedir)/$$i; \
- else \
- (cd $(top_srcdir)/$$src && $(INSTALL_DATA) *.h $(INSTALL_ROOT)$(phpincludedir)/$$i; \
- cd $(top_builddir)/$$src && $(INSTALL_DATA) *.h $(INSTALL_ROOT)$(phpincludedir)/$$i) 2>/dev/null || true; \
- fi \
- done; \
- fi
-
-PHP_TEST_SETTINGS = -d 'open_basedir=' -d 'output_buffering=0' -d 'memory_limit=-1'
-PHP_TEST_SHARED_EXTENSIONS = ` \
- if test "x$(PHP_MODULES)" != "x"; then \
- for i in $(PHP_MODULES)""; do \
- . $$i; $(top_srcdir)/build/shtool echo -n -- " -d extension=$$dlname"; \
- done; \
- fi; \
- if test "x$(PHP_ZEND_EX)" != "x"; then \
- for i in $(PHP_ZEND_EX)""; do \
- . $$i; $(top_srcdir)/build/shtool echo -n -- " -d $(ZEND_EXT_TYPE)=$(top_builddir)/modules/$$dlname"; \
- done; \
- fi`
-
-test: all
- -@if test ! -z "$(PHP_EXECUTABLE)" && test -x "$(PHP_EXECUTABLE)"; then \
- TEST_PHP_EXECUTABLE=$(PHP_EXECUTABLE) \
- TEST_PHP_SRCDIR=$(top_srcdir) \
- CC="$(CC)" \
- $(PHP_EXECUTABLE) $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -U -d extension_dir=modules/ $(PHP_TEST_SHARED_EXTENSIONS) tests/; \
- elif test ! -z "$(SAPI_CLI_PATH)" && test -x "$(SAPI_CLI_PATH)"; then \
- INI_FILE=`$(top_builddir)/$(SAPI_CLI_PATH) -r 'echo php_ini_loaded_file();'`; \
- if test "$$INI_FILE"; then \
- $(EGREP) -v '^(zend_)?extension(_debug)?(_ts)?[\t\ ]*=' "$$INI_FILE" > $(top_builddir)/tmp-php.ini; \
- else \
- echo > $(top_builddir)/tmp-php.ini; \
- fi; \
- TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
- TEST_PHP_SRCDIR=$(top_srcdir) \
- CC="$(CC)" \
- $(top_builddir)/$(SAPI_CLI_PATH) $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -c $(top_builddir)/tmp-php.ini -U -d extension_dir=$(top_builddir)/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS); \
- else \
- echo "ERROR: Cannot run tests without CLI sapi."; \
- fi
-
-utest: all
- -@if test ! -z "$(SAPI_CLI_PATH)" && test -x "$(SAPI_CLI_PATH)"; then \
- INI_FILE=`$(top_builddir)/$(SAPI_CLI_PATH) -r 'echo php_ini_loaded_file();'`; \
- if test "$$INI_FILE"; then \
- $(EGREP) -v '^extension[\t\ ]*=' "$$INI_FILE" > $(top_builddir)/tmp-php.ini; \
- else \
- echo > $(top_builddir)/tmp-php.ini; \
- fi; \
- TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
- TEST_PHP_SRCDIR=$(top_srcdir) \
- CC="$(CC)" \
- $(top_builddir)/$(SAPI_CLI_PATH) $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -c $(top_builddir)/tmp-php.ini -u -d extension_dir=$(top_builddir)/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS); \
- else \
- echo "ERROR: Cannot run tests without CLI sapi."; \
- fi
-
-ntest: all
- -@if test ! -z "$(SAPI_CLI_PATH)" && test -x "$(SAPI_CLI_PATH)"; then \
- INI_FILE=`$(top_builddir)/$(SAPI_CLI_PATH) -r 'echo php_ini_loaded_file();'`; \
- if test "$$INI_FILE"; then \
- $(EGREP) -v '^extension[\t\ ]*=' "$$INI_FILE" > $(top_builddir)/tmp-php.ini; \
- else \
- echo > $(top_builddir)/tmp-php.ini; \
- fi; \
- TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
- TEST_PHP_SRCDIR=$(top_srcdir) \
- CC="$(CC)" \
- $(top_builddir)/$(SAPI_CLI_PATH) $(PHP_TEST_SETTINGS) $(top_srcdir)/run-tests.php -c $(top_builddir)/tmp-php.ini -N -d extension_dir=$(top_builddir)/modules/ $(PHP_TEST_SHARED_EXTENSIONS) $(TESTS); \
- else \
- echo "ERROR: Cannot run tests without CLI sapi."; \
- fi
-
-clean:
- find . -name \*.gcno -o -name \*.gcda | xargs rm -f
- find . -name \*.lo -o -name \*.o | xargs rm -f
- find . -name \*.la -o -name \*.a | xargs rm -f
- find . -name \*.so | xargs rm -f
- find . -name .libs -a -type d|xargs rm -rf
- rm -f libphp$(PHP_MAJOR_VERSION).la $(SAPI_CLI_PATH) $(OVERALL_TARGET) modules/* libs/*
-
-distclean: clean
- rm -f config.cache config.log config.status Makefile.objects Makefile.fragments libtool main/php_config.h stamp-h php5.spec sapi/apache/libphp$(PHP_MAJOR_VERSION).module buildmk.stamp
- $(EGREP) define'.*include/php' $(top_srcdir)/configure | $(SED) 's/.*>//'|xargs rm -f
- find . -name Makefile | xargs rm -f
-
-.PHONY: all clean install distclean test
-.NOEXPORT:
View
55 NEWS
@@ -1,55 +0,0 @@
-PHP NEWS
-|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-?? ??? 20??, PHP 6.0
-- Unicode support. (Andrei, Dmitry, et al)
-
-- Changed dl() to be disabled by default. Enabled only when explicitly
- registered by the SAPI layer. Enabled only with CLI, CGI and EMBED. (Dmitry)
-- Changed opendir/dir/scandir to use default context
- when no context argument is passed. (Sara)
-- Changed open_basedir to allow tightening in runtime contexts. (Sara)
-- Changed allow_url_fopen/allow_url_include to allow
- per-wrapper enable/disable and runtime tightening. (Sara)
-
-- Removed undocumented and incomplete support for strings in list() operator.
- (Dmitry)
-- Removed old legacy:
- . "register_globals" support. (Pierre)
- . "register_long_arrays" ini option. (Dmitry)
- . "safe_mode" support. (Ilia, Andi)
- . "allow_call_time_pass_reference", added E_STRICT error message. (Dmitry)
- . session_register(), session_unregister() and session_is_registered()
- (needed only with "register_globals=On").
- . "magic_quotes_gpc", "magic_quotes_runtime" and "magic_quotes_sybase" ini
- options. (Pierre)
- . Changed get_magic_quotes_gpc(), get_magic_quotes_runtime to always return
- false and set_magic_quotes_runtime() to raise an E_CORE_ERROR.
-- Removed support for "continue" and "break" operators with non-constant
- operands. (Dmitry)
-- Removed Freetype 1.x and GD 1.x support from GD extension. (Pierre)
-
-- Moved extensions to PECL:
- . ext/ncurses (Hartmut)
-
-- Improved ext/zlib; re-implemented non-file related functionality. (Mike)
-- Improved output layer; see README.NEW-OUTPUT-API for internals. (Mike)
-- Improved ext/mhash: (Mike)
- . Added keygen constants.
- . Added new functions: mhash_keygen_count, mhash_get_keygen_name,
- mhash_keygen_uses_hash, mhash_keygen_uses_salt, mhash_get_keygen_salt_size,
- mhash_keygen.
-
-- Added runtime JIT auto-globals fetching and caching. (Dmitry, Sara)
-- Added "jump label" operator (limited "goto"). (Dmitry, Sara)
-- Added E_STRICT to E_ALL. (Dmitry)
-- Added streams features:
- . Second optional parameter to stream_context_create() to
- set params during context creation. (Sara)
- . "context" and "binary_pipes" params in "other_options" arg. (Sara)
- . stream_resolve_include_path(). (Sara)
-- Added shm_has_var() function. (Mike)
-- Added str_getcsv() function. (Sara)
-- Added ext/hash support to ext/session's ID generator. (Sara)
-
-- Fixed bug #40325 (Vary: header missing in gzip output handlers). (Mike)
-
View
141 README.CVS-RULES
@@ -1,141 +0,0 @@
-====================
- CVS Commit Rules
-====================
-
-This is the first file you should be reading after you get your CVS account.
-We'll assume you're basically familiar with CVS, but feel free to post
-your questions on the mailing list. Please have a look at
-http://cvsbook.red-bean.com/ for more detailed information on CVS.
-
-PHP is developed through the efforts of a large number of people.
-Collaboration is a Good Thing(tm), and CVS lets us do this. Thus, following
-some basic rules with regards to CVS usage will::
-
- a. Make everybody happier, especially those responsible for maintaining
- the CVS itself.
-
- b. Keep the changes consistently well documented and easily trackable.
-
- c. Prevent some of those 'Oops' moments.
-
- d. Increase the general level of good will on planet Earth.
-
-Having said that, here are the organizational rules::
-
- 1. Respect other people working on the project.
-
- 2. Discuss any significant changes on the list before committing and get
- confirmation from the release manager for the given branch.
-
- 3. Look at EXTENSIONS file to see who is the primary maintainer of
- the code you want to contribute to.
-
- 4. If you "strongly disagree" about something another person did, don't
- start fighting publicly - take it up in private email.
-
- 5. If you don't know how to do something, ask first!
-
- 6. Test your changes before committing them. We mean it. Really.
- To do so use "make test".
-
- 7. For development use the --enable-maintainer-zts switch to ensure your
- code handles TSRM correctly and doesn't break for thos who need that.
-
-Currently we have the following branches in use::
-
- HEAD Will become PHP 6.0. This CVS branch is for active development.
-
- PHP_5_3 Is used to release the PHP 5.3.x series. It still allows for
- larger enhancements.
-
- PHP_5_2 Is used to release the PHP 5.2.x series. Only bugfixes are permitted
- on this branch (Consult the releasemaster prior to commit).
-
- PHP_5_1 This branch is closed.
-
- PHP_4_4 Is used to release the PHP 4.4.x series. Only bugfixes are permitted
- on this branch (Consult the releasemaster prior to commit).
-
- PHP_4_3 This branch is closed.
-
-The next few rules are more of a technical nature::
-
- 1. DO NOT TOUCH ChangeLog! It is automagically updated from the commit
- messages every day. Woe be to those who attempt to mess with it.
-
- 2. All news updates intended for public viewing, such as new features,
- bug fixes, improvements, etc., should go into the NEWS file.
-
- NB! Lines, starting with @ will go automagically into NEWS file, but
- this is NOT recommended, though. Please, add news entries directly to
- NEWS file and don't forget to keep them adjusted and sorted.
-
- 3. Do not commit multiple file and dump all messages in one commit. If you
- modified several unrelated files, commit each group separately and
- provide a nice commit message for each one. See example below.
-
- 4. Do write your commit message in such a way that it makes sense even
- without the corresponding diff. One should be able to look at it, and
- immediately know what was modified. Definitely include the function name
- in the message as shown below.
-
- 5. In your commit messages, keep each line shorter than 80 characters. And
- try to align your lines vertically, if they wrap. It looks bad otherwise.
-
- 6. If you modified a function that is callable from PHP, prepend PHP to
- the function name as shown below.
-
-
-The format of the commit messages is pretty simple.
-
-Use a - to start a new item in your commit message.
-
-If a line begins with #, it is taken to be a comment and will not appear
-in the ChangeLog. Everything else goes into the ChangeLog.
-
-It is important to note that if your comment or news logline spans multiple
-lines, you have to put # at the beginning of **every** such line.
-
-Example. Say you modified two files, datetime.c and string.c. In datetime.c you
-added a new format option for the date() function, and in string.c you fixed a
-memory leak in php_trim(). Don't commit both of these at once. Commit them
-separately and try to make sure your commit messages look something like the
-following.
-
-For datetime.c::
-
- - Added new 'K' format modifier to date() for printing out number of days
- until New Year's Eve.
-
-For string.c::
-
- - Fixed a memory leak in php_trim() resulting from improper use of zval_dtor().
- #- Man, that thing was leaking all over the place!
-
-The # lines will be omitted from the ChangeLog automagically.
-
-Use the [DOC] tag in your log message whenever you feel that your changes
-imply a documentation modification. The php-doc team will automatically
-get notified about your commit through the php-doc mailing list.
-
-If you fix some bugs, you should note the bug ID numbers in your
-commit message. Bug ID should be prefixed by "#" for easier access to
-bug report when developers are browsing CVS via LXR or Bonsai.
-
-Example::
-
- Fixed bug #14016 (pgsql notice handler double free crash bug.)
-
-If you don't see your messages in ChangeLog right away, don't worry!
-These files are updated once a day, so your stuff will not show up until
-somewhat later.
-
-You can use LXR (http://lxr.php.net/) and Bonsai (http://bonsai.php.net/)
-to look at PHP CVS repository in various ways.
-
-To receive daily updates to ChangeLog and NEWS, send an empty message to
-php-cvs-daily-subscribe@lists.php.net.
-
-Happy hacking,
-
-PHP Team
View
39 README.EXTENSIONS
@@ -1,39 +0,0 @@
-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:
-
-If this was your old module entry:
-
-zend_module_entry foo_module_entry = {
- "foo", /* extension name */
- foo_functions, /* extension function list */
- NULL, /* extension-wide startup function */
- NULL, /* extension-wide shutdown function */
- PHP_RINIT(foo), /* per-request startup function */
- PHP_RSHUTDOWN(foo), /* per-request shutdown function */
- PHP_MINFO(foo), /* information function */
- STANDARD_MODULE_PROPERTIES
-};
-
-Here's how it should look if you want your code to build with PHP
-4.1.0 and up:
-
-zend_module_entry foo_module_entry = {
-#if ZEND_MODULE_API_NO >= 20010901
- STANDARD_MODULE_HEADER,
-#endif
- "foo", /* extension name */
- foo_functions, /* extension function list */
- NULL, /* extension-wide startup function */
- NULL, /* extension-wide shutdown function */
- PHP_RINIT(foo), /* per-request startup function */
- PHP_RSHUTDOWN(foo), /* per-request shutdown function */
- PHP_MINFO(foo), /* information function */
-#if ZEND_MODULE_API_NO >= 20010901
- FOO_VERSION, /* extension version number (string) */
-#endif
- STANDARD_MODULE_PROPERTIES
-};
-
-If you don't care about source compatibility with earlier PHP releases
-than 4.1.0, you can drop the #if/#endif lines.
View
194 README.EXT_SKEL
@@ -1,194 +0,0 @@
-(NOTE: you may also want to take a look at the pear package
- PECL_Gen, a PHP-only alternative for this script that
- supports way more extension writing tasks and is
- supposed to replace ext_skel completely in the long run ...)
-
-WHAT IT IS
-
- It's a tool for automatically creating the basic framework for a PHP module
- and writing C code handling arguments passed to your functions from a simple
- configuration file. See an example at the end of this file.
-
-HOW TO USE IT
-
- Very simple. First, change to the ext/ directory of the PHP 4 sources. If
- you just need the basic framework and will be writing all the code in your
- functions yourself, you can now do
-
- ./ext_skel --extname=module_name
-
- and everything you need is placed in directory module_name.
-
- [ Note that GNU awk is likely required for this script to work. Debian
- systems seem to default to using mawk, so you may need to change the
- #! line in skeleton/create_stubs and the cat $proto | awk line in
- ext_skel to use gawk explicitly. ]
-
- If you don't need to test the existence of any external header files,
- libraries or functions in them, the module is already almost ready to be
- compiled in PHP. Just remove 3 comments in your_module_name/config.m4,
- change back up to PHP sources top directory, and do
-
- ./buildconf; ./configure --enable-module_name; make
-
- But if you already have planned the overall scheme of your module, what
- functions it will contain, their return types and the arguments they take
- (a very good idea) and don't want to bother yourself with creating function
- definitions and handling arguments passed yourself, it's time to create a
- function definitions file, which you will give as an argument to ext_skel
- with option
-
- --proto=filename.
-
-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
-
- but then you'll be left with an almost empty function body without any
- argument handling.
-
- Arguments are given in parenthesis after the function name, and are of
- the form 'argument_type argument_name'. Arguments are separated from each
- other with a comma and optional space. Argument_type can be one of int,
- bool, double, float, string, array, object or mixed.
-
- An optional argument is separated from the previous by an optional space,
- then '[' and of course comma and optional space, like all the other
- arguments. You should close a row of optional arguments with same amount of
- ']'s as there where '['s. Currently, it does not harm if you forget to do it
- or there is a wrong amount of ']'s, but this may change in the future.
-
- An additional short description may be added after the parameters.
- If present it will be filled into the 'proto' header comments in the stubs
- code and the <refpurpose> tag in the XML documentation.
-
- An example:
-
- my_function(int arg1, int arg2 [, int arg3 [, int arg4]]) this is my 1st
-
- Arguments arg3 and arg4 are optional.
-
- If possible, the function definition should also contain it's return type
- in front of the definition. It's not actually used for any C code generating
- purposes but PHP in-source documentation instead, and as such, very useful.
- It can be any of int, double, string, bool, array, object, resource, mixed
- or void.
-
- The file must contain nothing else but function definitions, no comments or
- empty lines.
-
-OTHER OPTIONS
-
- --no-help
-
- By default, ext_skel creates both comments in the source code and a test
- function to help first time module writers to get started and testing
- configuring and compiling their module. This option turns off all such things
- which may just annoy experienced PHP module coders. Especially useful with
-
- --stubs=file
-
- which will leave out also all module specific stuff and write just function
- stubs with function value declarations and passed argument handling, and
- function entries and definitions at the end of the file, for copying and
- pasting into an already existing module.
-
- --assign-params
- --string-lens
-
- By default, function proto 'void foo(string bar)' creates the following:
- ...
- zval **bar;
- ... (zend_get_parameters_ex() called in the middle...)
- convert_to_string_ex(bar);
-
- Specifying both of these options changes the generated code to:
- ...
- zval **bar_arg;
- int bar_len;
- char *bar = NULL;
- ... (zend_get_parameters_ex() called in the middle...)
- convert_to_string_ex(bar_arg);
- bar = Z_STRVAL_PP(bar_arg);
- bar_len = Z_STRLEN_PP(bar_arg);
-
- You shouldn't have to ask what happens if you leave --string-lens out. If you
- have to, it's questionable whether you should be reading this document.
-
- --with-xml[=file]
-
- Creates the basics for phpdoc .xml file.
-
- --full-xml
-
- Not implemented yet. When or if there will ever be created a framework for
- self-contained extensions to use phpdoc system for their documentation, this
- option enables it on the created xml file.
-
-CURRENT LIMITATIONS, BUGS AND OTHER ODDITIES
-
- Only arguments of types int, bool, double, float, string and array are
- handled. For other types you must write the code yourself. And for type
- mixed, it wouldn't even be possible to write anything, because only you
- know what to expect.
-
- It can't handle correctly, and probably never will, variable list of
- of arguments. (void foo(int bar [, ...])
-
- Don't trust the generated code too much. It tries to be useful in most of
- the situations you might encounter, but automatic code generation will never
- beat a programmer who knows the real situation at hand. ext_skel is generally
- best suited for quickly generating a wrapper for c-library functions you
- might want to have available in PHP too.
-
- This program doesn't have a --help option. It has --no-help instead.
-
-EXAMPLE
-
- The following _one_ line
-
- bool my_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])
- */
-PHP_FUNCTION(my_drawtext)
-{
- zval **image, **text, **font, **x, **y, **color;
- int argc;
- int image_id = -1;
- int font_id = -1;
-
- argc = ZEND_NUM_ARGS();
- if (argc < 5 || argc > 6 || zend_get_parameters_ex(argc, &image, &text, &font, &x, &y, &color) == FAILURE) {
- WRONG_PARAM_COUNT;
- }
-
- ZEND_FETCH_RESOURCE(???, ???, image, image_id, "???", ???_rsrc_id);
- ZEND_FETCH_RESOURCE(???, ???, font, font_id, "???", ???_rsrc_id);
-
- switch (argc) {
- case 6:
- convert_to_long_ex(color);
- /* Fall-through. */
- case 5:
- convert_to_long_ex(y);
- convert_to_long_ex(x);
- /* font: fetching resources already handled. */
- convert_to_string_ex(text);
- /* image: fetching resources already handled. */
- break;
- default:
- WRONG_PARAM_COUNT;
- }
-
- php_error(E_WARNING, "my_drawtext: not yet implemented");
-}
-/* }}} */
-
View
79 README.MAILINGLIST_RULES
@@ -1,79 +0,0 @@
-====================
- Mailinglist Rules
-====================
-
-This is the first file you should be reading before doing any posts on PHP
-mailinglists. Following these rules is considered imperative to the success of
-the PHP project. Therefore expect your contributions to be of much less positive
-impact if you do not follow these rules. More importantly you can actually
-assume that not following these rules will hurt the PHP project.
-
-PHP is developed through the efforts of a large number of people.
-Collaboration is a Good Thing(tm), and mailinglists lets us do this. Thus,
-following some basic rules with regards to mailinglist usage will:
-
- a. Make everybody happier, especially those responsible for developing PHP
- itself.
-
- b. Help in making sure we all use our time more efficiently.
-
- c. Prevent you from making a fool of yourself in public.
-
- d. Increase the general level of good will on planet Earth.
-
-
-Having said that, here are the organizational rules:
-
- 1. Respect other people working on the project.
-
- 2. Do not post when you are angry. Any post can wait a few hours. Review
- your post after a good breather or a good nights sleep.
-
- 3. Make sure you pick the right mailinglist for your posting. Please review
- the descriptions on the mailinglist overview page
- (http://www.php.net/mailing-lists.php). When in doubt ask a friend or
- someone you trust on IRC.
-
- 4. Make sure you know what you are talking about. PHP is a very large project
- that strives to be very open. The flip side is that the core developers
- are faced with a lot of requests. Make sure that you have done your
- research before posting to the entire developer community.
-
- 5. Patches have a much greater chance of acceptance than just asking the
- PHP developers to implement a feature for you. For one it makes the
- discussion more concrete and it shows that the poster put thought and time
- into the request.
-
- 6. If you are posting to an existing thread, make sure that you know what
- previous posters have said. This is even more important the longer the
- thread is already.
-
- 7. Please configure your email client to use a real name and keep message
- signatures to a maximum of 2 lines if at all necessary.
-
-The next few rules are more some general hints:
-
- 1. If you notice that your posting ratio is much higher than that of other
- people, double check the above rules. Try to wait a bit longer before
- sending your replies to give other people more time to digest your answers
- and more importantly give you the opportunity to make sure that you
- aggregate your current position into a single mail instead of multiple
- ones.
-
- 2. Consider taking a step back from a very active thread now and then. Maybe
- talking to some friends and fellow developers will help in understanding
- the other opinions better.
-
- 3. Do not top post. Place your answer underneath anyone you wish to quote
- and remove any previous comment that is not relevant to your post.
-
- 4. Do not high-jack threads, by bringing up entirely new topics. Please
- create an entirely new thread copying anything you wish to quote into the
- new thread.
-
-Finally, additional hints on how to behave inside the virtual community can be
-found in RFC 1855 (http://www.faqs.org/rfcs/rfc1855.html).
-
-Happy hacking,
-
-PHP Team
View
142 README.NEW-OUTPUT-API
@@ -1,142 +0,0 @@
-$Id$
-
-
-API adjustment to the old output control code:
-
- Everything now resides beneath the php_output namespace,
- and there's an API call for every output handler op.
-
- Checking output control layers status:
- // Using OG()
- php_output_get_status(TSRMLS_C);
-
- Starting the default output handler:
- // php_start_ob_buffer(NULL, 0, 1 TSRMLS_CC);
- php_output_start_default(TSRMLS_C);
-
- Starting an user handler by zval:
- // php_start_ob_buffer(zhandler, chunk_size, erase TSRMLS_CC);
- php_output_start_user(zhandler, chunk_size, flags TSRMLS_CC);
-
- Starting an internal handler whithout context:
- // php_ob_set_internal_handler(my_php_output_handler_func_t, buffer_size, "output handler name", erase TSRMLS_CC);
- php_output_start_internal(handler_name_zval, my_php_output_handler_func_t, chunk_size, flags TSRMLS_CC);
-
- Starting an internal handler with context:
- // not possible with old API
- php_output_handler *h;
- h = php_output_handler_create_internal(handler_name_zval, my_php_output_handler_context_func_t, chunk_size, flags TSRMLS_CC);
- php_output_handler_set_context(h, my_context, my_context_dtor);
- php_output_handler_start(h TSRMLS_CC);
-
- Testing whether a certain output handler has already been started:
- // php_ob_handler_used("output handler name" TSRMLS_CC);
- php_output_handler_started(handler_name_zval TSRMLS_CC);
-
- Flushing one output buffer:
- // php_ob_end_buffer(1, 1 TSRMLS_CC);
- php_output_flush(TSRMLS_C);
-
- Flushing all output buffers:
- // not possible with old API
- php_output_flush_all(TSRMLS_C);
-
- Cleaning one output buffer:
- // php_ob_end_buffer(0, 1 TSRMLS_CC);
- php_output_clean(TSRMLS_C);
-
- Cleaning all output buffers:
- // not possible with old API
- php_output_clean_all(TSRMLS_C);
-
- Discarding one output buffer:
- // php_ob_end_buffer(0, 0 TSRMLS_CC);
- php_output_discard(TSRMLS_C);
-
- Discarding all output buffers:
- // php_ob_end_buffers(0 TSRMLS_CC);
- php_output_discard_all(TSRMLS_C);
-
- Stopping (and dropping) one output buffer:
- // php_ob_end_buffer(1, 0 TSRMLS_CC)
- php_output_end(TSRMLS_C);
-
- Stopping (and dropping) all output buffers:
- // php_ob_end_buffers(1, 0 TSRMLS_CC);
- php_output_end_all(TSRMLS_C);
-
- Retrieving output buffers contents:
- // php_ob_get_buffer(zstring TSRMLS_CC);
- php_output_get_contents(zstring TSRMLS_CC);
-
- Retrieving output buffers length:
- // php_ob_get_length(zlength TSRMLS_CC);
- php_output_get_length(zlength TSRMLS_CC);
-
- Retrieving output buffering level:
- // OG(nesting_level);
- php_output_get_level(TSRMLS_C);
-
- Issue a warning because of an output handler conflict:
- // php_ob_init_conflict("to be started handler name", "to be tested if already started handler name" TSRMLS_CC);
- php_output_handler_conflict(new_handler_name_zval, set_handler_name_zval TSRMLS_CC);
-
- Registering a conflict checking function, which will be checked prior starting the handler:
- // not possible with old API, unless hardcoding into output.c
- php_output_handler_conflict_register(handler_name_zval, my_php_output_handler_conflict_check_t TSRMLS_CC);
-
- Registering a reverse conflict checking function, which will be checked prior starting the specified foreign handler:
- // not possible with old API
- php_output_handler_reverse_conflict_register(foreign_handler_name_zval, my_php_output_handler_conflict_check_t TSRMLS_CC);
-
- Facilitating a context from within an output handler callable with ob_start():
- // not possible with old API
- php_output_handler_hook(PHP_OUTPUT_HANDLER_HOOK_GET_OPAQ, (void *) &custom_ctx_ptr_ptr TSRMLS_CC);
-
- Disabling of the output handler by itself:
- //not possible with old API
- php_output_handler_hook(PHP_OUTPUT_HANDLER_HOOK_DISABLE, NULL TSRMLS_CC);
-
- Marking an output handler immutable by itself because of irreversibility of its operation:
- // not possible with old API
- php_output_handler_hook(PHP_OUTPUT_HANDLER_HOOK_IMMUTABLE, NULL TSRMLS_CC);
-
- Restarting the output handler because of a CLEAN operation:
- // not possible with old API
- if (flags & PHP_OUTPUT_HANDLER_CLEAN) { ... }
-
- Recognizing by the output handler itself if it gets discarded:
- // not possible with old API
- if ((flags & PHP_OUTPUT_HANDLER_CLEAN) && (flags & PHP_OUTPUT_HANDLER_FINAL)) { ... }
-
-
-Output handler hooks
-
- The output handler can change its abilities at runtime. Eg. the gz handler can
- remove the CLEANABLE and REMOVABLE bits when the first output has passed through it;
- or handlers implemented in C to be used with ob_start() can contain a non-global
- context:
- PHP_OUTPUT_HANDLER_HOOK_GET_OPAQ
- pass a void*** pointer as second arg to receive the address of a pointer
- pointer to the opaque field of the output handler context
- PHP_OUTPUT_HANDLER_HOOK_GET_FLAGS
- pass a int* pointer as second arg to receive the flags set for the output handler
- PHP_OUTPUT_HANDLER_HOOK_GET_LEVEL
- pass a int* pointer as second arg to receive the level of this output handler
- (starts with 0)
- PHP_OUTPUT_HANDLER_HOOK_IMMUTABLE
- the second arg is ignored; marks the output handler to be neither cleanable
- nor removable
- PHP_OUTPUT_HANDLER_HOOK_DISABLE
- the second arg is ignored; marks the output handler as disabled
-
-
-Open questions
-
- Should the userland API be adjusted and unified?
-
- Many bits of the manual (and very first implementation) do not comply
- with the behaviour of the current (to be obsoleted) code, thus should
- the manual or the behaviour be adjusted?
-
-END
View
252 README.PARAMETER_PARSING_API
@@ -1,252 +0,0 @@
-New parameter parsing functions
-===============================
-
-It should be easier to parse input parameters to an extension function.
-Hence, borrowing from Python's example, there are now a set of functions
-that given the string of type specifiers, can parse the input parameters
-and store the results in the user specified variables. This avoids most
-of the IS_* checks and convert_to_* conversions. The functions also
-check for the appropriate number of parameters, and try to output
-meaningful error messages.
-
-
-Prototypes
-----------
-/* Implemented. */
-int zend_parse_parameters(int num_args TSRMLS_DC, char *type_spec, ...);
-int zend_parse_parameters_ex(int flags, int num_args TSRMLS_DC, char *type_spec, ...);
-
-The zend_parse_parameters() function takes the number of parameters
-passed to the extension function, the type specifier string, and the
-list of pointers to variables to store the results in. The _ex() version
-also takes 'flags' argument -- current only ZEND_PARSE_PARAMS_QUIET can
-be used as 'flags' to specify that the function should operate quietly
-and not output any error messages.
-
-Both functions return SUCCESS or FAILURE depending on the result.
-
-The auto-conversions are performed as necessary. Arrays, objects, and
-resources cannot be auto-converted.
-
-
-Type specifiers
----------------
- The following list shows the type specifier, its meaning and the parameter
- types that need to be passed by address. All passed paramaters are set
- if the PHP parameter is non optional and untouched if optional and the
- parameter is not present. The only exception is O where the zend_class_entry*
- has to be provided on input and is used to verify the PHP parameter is an
- instance of that class.
-
- a - array (zval*)
- b - boolean (zend_bool)
- C - class (zend_class_entry*)
- d - double (double)
- f - function or array containing php method call info (returned as
- zend_fcall_info and zend_fcall_info_cache)
- h - array (returned as HashTable*)
- l - long (long)
- o - object of any type (zval*)
- O - object of specific type given by class entry (zval*, zend_class_entry)
- r - resource (zval*)
- s - string (with possible null bytes) and its length (char*, int)
- S - binary string, does not allow conversion from Unicode strings
- t - text (zstr (string union), int (length), zend_uchar (IS_STRING/..))
- accepts either Unicode or binary string
- T - text (zstr (string union), int (length), zend_uchar (IS_STRING/..))
- coalesces all T parameters to common type (Unicode or binary)
- u - unicode (UChar*, int)
- U - Unicode string, does not allow conversion from binary strings
- x - Unicode or binary string depending on UG(unicode). In unicode this
- behaves like 'u' and in nonunicode mode it behaves like 's'.
- z - the actual zval (zval*)
- Z - the actual zval (zval**)
- * - variable arguments list (0 or more)
- + - variable arguments list (1 or more)
-
- The following characters also have a meaning in the specifier string:
- | - indicates that the remaining parameters are optional, they
- should be initialized to default values by the extension since they
- will not be touched by the parsing function if they are not
- passed to it.
- / - use SEPARATE_ZVAL_IF_NOT_REF() on the parameter it follows
- ! - the parameter it follows can be of specified type or NULL (applies
- to all specifiers except for 'b', 'l', and 'd'). If NULL is passed, the
- results pointer is set to NULL as well.
- & - alternate format (currently used for 's' only to specify a converter to
- use when converting from Unicode strings)
- ^ - returns original string type before conversion (only for 's' and 'u'
- specifiers)
-
-Examples
---------
-/* Gets a long, a string and its length, and a zval */
-long l;
-char *s;
-int s_len;
-zval *param;
-if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "lsz",
- &l, &s, &s_len, &param) == FAILURE) {
- return;
-}
-
-
-/* Gets an object of class specified by my_ce, and an optional double. */
-zval *obj;
-double d = 0.5;
-zend_class_entry *my_ce;
-if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O|d",
- &obj, my_ce, &d) == FAILURE) {
- return;
-}
-
-
-/* Gets an object or null, and an array.
- If null is passed for object, obj will be set to NULL. */
-zval *obj;
-zval *arr;
-if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "o!a",
- &obj, &arr) == FAILURE) {
- return;
-}
-
-
-/* Gets a separated array which can also be null. */
-zval *arr;
-if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a/!",
- &arr) == FAILURE) {
- return;
-}
-
-
-/* Gets a binary string in UTF-8 */
-char *str;
-int str_len;
-
-if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s&", &str, &str_len, UG(utf8_conv)) == FAILURE) {
- return;
-}
-
-
-/* Gets a Unicode string */
-UChar *str;
-int len;
-
-if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "u", &str, &len) == FAILURE) {
- return;
-}
-
-
-/* Gets a Unicode or binary string */
-zstr str;
-int len;
-zend_uchar type;
-
-if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "t", &str, &len, &type) == FAILURE) {
- return;
-}
-if (type == IS_UNICODE) {
- /* process str.u as Unicode string */
-} else {
- /* process str.s binary string */
-}
-
-
-/* Gets two string parameters, both of which will be guaranteed to be of the same type */
-zstr str1, str2;
-int len1, len2;
-zend_uchar type1, type2;
-
-if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "TT", &str1, &len1,
- &type1, &str2, &len2, &type2) == FAILURE) {
- return;
-}
-if (type1 == IS_UNICODE) {
- /* process as Unicode, str2 is guaranteed to be Unicode as well */
-} else {
- /* process as binary string, str2 is guaranteed to be the same */
-}
-
-
-/* Get either a set of 3 longs or a string. */
-long l1, l2, l3;
-char *s;
-/*
- * The function expects a pointer to a integer in this case, not a long
- * or any other type. If you specify a type which is larger
- * than a 'int', the upper bits might not be initialized
- * properly, leading to random crashes on platforms like
- * Tru64 or Linux/Alpha.
- */
-int length;
-
-if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC,
- "lll", &l1, &l2, &l3) == SUCCESS) {
- /* manipulate longs */
-} else if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC,
- "s", &s, &length) == SUCCESS) {
- /* manipulate string */
-} else {
- /* output error */
-
- return;
-}
-
-
-/* Function that accepts only varargs (0 or more) */
-
-int i, num_varargs;
-zval ***varargs = NULL;
-
-
-if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "*", &varargs, &num_varargs) == FAILURE) {
- return;
-}
-
-for (i = 0; i < num_varargs; i++) {
- /* do something with varargs[i] */
-}
-
-if (varargs) {
- efree(varargs);
-}
-
-
-/* Function that accepts a string, followed by varargs (1 or more) */
-
-char *str;
-int str_len;
-int i, num_varargs;
-zval ***varargs = NULL;
-
-if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s+", &str, &str_len, &varargs, &num_varargs) == FAILURE) {
- return;
-}
-
-for (i = 0; i < num_varargs; i++) {
- /* do something with varargs[i] */
-}
-
-if (varargs) {
- efree(varargs);
-}
-
-
-/* Function that takes an array, followed by varargs, and ending with a long */
-long num;
-zval *array;
-int i, num_varargs;
-zval ***varargs = NULL;
-
-if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a*l", &array, &varargs, &num_varargs, &num) == FAILURE) {
- return;
-}
-
-for (i = 0; i < num_varargs; i++) {
- /* do something with varargs[i] */
-}
-
-if (varargs) {
- efree(varargs);
-}
-
View
11 README.PEAR
@@ -1,11 +0,0 @@
-To install the PEAR installer, please use go-pear.
-
-On linux:
-$ lynx -source http://go-pear.org/ | php
-
-or save the setup script under go-pear.php and run:
-
-php go-pear.php
-
-For more informations see the PEAR manual:
-http://pear.php.net/manual/en/installation.getting.php
View
155 README.PHP4-TO-PHP5-THIN-CHANGES
@@ -1,155 +0,0 @@
-1. strrpos() and strripos() now