Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

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

  • Loading branch information...
commit 21b12afa9316e2373a8f882e329f0175e013f485 1 parent c54eff9
SVN Migration authored
Showing with 0 additions and 66,209 deletions.
  1. +0 −304 .gdbinit
  2. +0 −240 CODING_STANDARDS
  3. +0 −2  CREDITS
  4. +0 −10,342 ChangeLog
  5. BIN  ChangeLog.1999.gz
  6. BIN  ChangeLog.2000.gz
  7. BIN  ChangeLog.2001.gz
  8. BIN  ChangeLog.2002.gz
  9. +0 −492 EXTENSIONS
  10. +0 −422 INSTALL
  11. +0 −68 LICENSE
  12. +0 −23 Makefile.frag
  13. +0 −68 Makefile.global
  14. +0 −2,539 NEWS
  15. +0 −115 README.CVS-RULES
  16. +0 −39 README.EXTENSIONS
  17. +0 −193 README.EXT_SKEL
  18. +0 −127 README.PARAMETER_PARSING_API
  19. +0 −57 README.QNX
  20. +0 −155 README.SELF-CONTAINED-EXTENSIONS
  21. +0 −379 README.STREAMS
  22. +0 −126 README.SUBMITTING_PATCH
  23. +0 −170 README.TESTING
  24. +0 −137 README.TESTING2
  25. +0 −123 README.UNIX-BUILD-SYSTEM
  26. +0 −112 README.Zeus
  27. +0 −188 README.input_filter
  28. +0 −157 TODO
  29. +0 −211 TODO-PHP5
  30. +0 −3  TODO.BUILDv5
  31. +0 −26 TSRM/LICENSE
  32. +0 −6 TSRM/Makefile.am
  33. +0 −2  TSRM/TODO
  34. +0 −666 TSRM/TSRM.c
  35. +0 −186 TSRM/TSRM.dsp
  36. +0 −172 TSRM/TSRM.h
  37. +0 −1  TSRM/acconfig.h
  38. +0 −5 TSRM/acinclude.m4
  39. +0 −43 TSRM/build.mk
  40. +0 −33 TSRM/buildconf
  41. +0 −31 TSRM/configure.in
  42. +0 −44 TSRM/readdir.h
  43. +0 −165 TSRM/threads.m4
  44. +0 −128 TSRM/tsrm.m4
  45. +0 −11 TSRM/tsrm_config.nw.h
  46. +0 −19 TSRM/tsrm_config.w32.h
  47. +0 −60 TSRM/tsrm_config_common.h
  48. +0 −240 TSRM/tsrm_nw.c
  49. +0 −29 TSRM/tsrm_nw.h
  50. +0 −63 TSRM/tsrm_strtok_r.c
  51. +0 −6 TSRM/tsrm_strtok_r.h
  52. +0 −859 TSRM/tsrm_virtual_cwd.c
  53. +0 −266 TSRM/tsrm_virtual_cwd.h
  54. +0 −377 TSRM/tsrm_win32.c
  55. +0 −105 TSRM/tsrm_win32.h
  56. +0 −12,075 Zend/ChangeLog
  57. +0 −186 Zend/FlexLexer.h
  58. +0 −56 Zend/LICENSE
  59. +0 −51 Zend/Makefile.am
  60. +0 −195 Zend/OBJECTS2_HOWTO
  61. +0 −136 Zend/RFCs/001.txt
  62. +0 −169 Zend/RFCs/002.txt
  63. +0 −72 Zend/RFCs/003.txt
  64. +0 −107 Zend/RFCs/004.txt
  65. +0 −802 Zend/ZEND_CHANGES
  66. +0 −586 Zend/Zend.dsp
  67. +0 −236 Zend/Zend.m4
  68. +0 −258 Zend/ZendCore.dep
  69. +0 −707 Zend/ZendTS.dsp
  70. +0 −105 Zend/acconfig.h
  71. +0 −47 Zend/acinclude.m4
  72. +0 −43 Zend/build.mk
  73. +0 −33 Zend/buildconf
  74. +0 −47 Zend/configure.in
  75. +0 −1,643 Zend/flex.skl
  76. +0 −339 Zend/tests/zend2.php
  77. +0 −1,084 Zend/zend.c
  78. +0 −617 Zend/zend.h
  79. BIN  Zend/zend.ico
  80. +0 −1,640 Zend/zend_API.c
  81. +0 −444 Zend/zend_API.h
  82. +0 −759 Zend/zend_alloc.c
  83. +0 −143 Zend/zend_alloc.h
  84. +0 −1,758 Zend/zend_builtin_functions.c
  85. +0 −35 Zend/zend_builtin_functions.h
  86. +0 −3,585 Zend/zend_compile.c
  87. +0 −814 Zend/zend_compile.h
  88. +0 −88 Zend/zend_config.nw.h
  89. +0 −107 Zend/zend_config.w32.h
  90. +0 −275 Zend/zend_constants.c
  91. +0 −73 Zend/zend_constants.h
  92. +0 −135 Zend/zend_default_classes.c
  93. +0 −38 Zend/zend_default_classes.h
  94. +0 −72 Zend/zend_dynamic_array.c
  95. +0 −47 Zend/zend_dynamic_array.h
  96. +0 −48 Zend/zend_errors.h
  97. +0 −135 Zend/zend_exceptions.c
  98. +0 −38 Zend/zend_exceptions.h
  99. +0 −4,231 Zend/zend_execute.c
  100. +0 −185 Zend/zend_execute.h
  101. +0 −1,094 Zend/zend_execute_API.c
  102. +0 −61 Zend/zend_execute_locks.h
  103. +0 −289 Zend/zend_extensions.c
  104. +0 −125 Zend/zend_extensions.h
  105. +0 −142 Zend/zend_fast_cache.h
  106. +0 −292 Zend/zend_globals.h
  107. +0 −117 Zend/zend_globals_macros.h
  108. +0 −1,354 Zend/zend_hash.c
  109. +0 −290 Zend/zend_hash.h
  110. +0 −250 Zend/zend_highlight.c
  111. +0 −61 Zend/zend_highlight.h
  112. +0 −156 Zend/zend_indent.c
  113. +0 −35 Zend/zend_indent.h
  114. +0 −524 Zend/zend_ini.c
  115. +0 −210 Zend/zend_ini.h
  116. +0 −238 Zend/zend_ini_parser.y
  117. +0 −41 Zend/zend_ini_scanner.h
  118. +0 −226 Zend/zend_ini_scanner.l
  119. +0 −44 Zend/zend_istdiostream.h
  120. +0 −974 Zend/zend_language_parser.y
  121. +0 −50 Zend/zend_language_scanner.h
  122. +0 −1,598 Zend/zend_language_scanner.l
  123. +0 −368 Zend/zend_list.c
  124. +0 −120 Zend/zend_list.h
  125. +0 −317 Zend/zend_llist.c
  126. +0 −86 Zend/zend_llist.h
  127. +0 −371 Zend/zend_mm.c
  128. +0 −74 Zend/zend_mm.h
  129. +0 −100 Zend/zend_modules.h
  130. 0  Zend/zend_multibyte.c
  131. +0 −842 Zend/zend_object_handlers.c
  132. +0 −112 Zend/zend_object_handlers.h
  133. +0 −150 Zend/zend_objects.c
  134. +0 −40 Zend/zend_objects.h
  135. +0 −297 Zend/zend_objects_API.c
  136. +0 −80 Zend/zend_objects_API.h
  137. +0 −502 Zend/zend_opcode.c
Sorry, we could not display the entire diff because too many files (2,612) changed.
View
304 .gdbinit
@@ -1,304 +0,0 @@
-set $zts = 0
-
-define ____executor_globals
- if $zts
- 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
- type "set $zts = 1" if you use --enable-maintainer-zts on your configure line
-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 printzv
- set $ind = 0
- ____printzv $arg0 0
-end
-
-document printzv
- prints content of zval
-end
-
-define ____printzv
- ____executor_globals
- set $zvalue = $arg0
-
- if $zvalue->type == 0
- set $typename = "NULL"
- end
- if $zvalue->type == 1
- set $typename = "long"
- end
- if $zvalue->type == 2
- set $typename = "double"
- end
- if $zvalue->type == 3
- set $typename = "string"
- end
- if $zvalue->type == 4
- set $typename = "array"
- end
- if $zvalue->type == 5
- set $typename = "object"
- end
- if $zvalue->type == 6
- set $typename = "bool"
- end
- if $zvalue->type == 7
- set $typename = "resource"
- end
- if $zvalue->type == 8
- set $typename = "constant"
- end
- if $zvalue->type == 9
- set $typename = "const_array"
- end
-
- printf "[0x%08x] ", $zvalue
-
- if $zvalue == $eg.uninitialized_zval_ptr
- printf "*uninitialized* "
- end
- printf "(refcount=%d) %s: ", $zvalue->refcount, $typename
- if $zvalue->type == 1
- printf "%ld", $zvalue->value.lval
- end
- if $zvalue->type == 2
- printf "%lf", $zvalue->value.dval
- end
- if $zvalue->type == 3
- printf "\"%s\"(%d)", $zvalue->value.str.val, $zvalue->value.str.len
- end
- if $zvalue->type == 4
- if ! $arg1
- printf "{\n"
- set $ind = $ind + 1
- ____print_ht $zvalue->value.ht
- set $ind = $ind - 1
- set $i = $ind
- while $i > 0
- printf " "
- set $i = $i - 1
- end
- printf "}"
- end
- end
- if $zvalue->type == 5
- if ! $arg1
- printf "(prop examination disabled due to a gdb bug)"
- if $zvalue->value.obj.handlers->get_properties
-# set $ht = $zvalue->value.obj.handlers->get_properties($zvalue)
-# printf "{\n"
-# set $ind = $ind + 1
-# ____print_ht $ht
-# set $ind = $ind - 1
-# set $i = $ind
-# while $i > 0
-# printf " "
-# set $i = $i - 1
-# end
-# printf "}"
- end
- end
- end
- if $zvalue->type == 6
- if $zvalue->lval
- printf "true"
- else
- printf "false"
- end
- end
- if $zvalue->type == 7
- printf "#%d", $zvalue->value.lval
- end
- printf "\n"
-end
-
-define ____print_ht
- set $ht = $arg0
- set $p = $ht->pListHead
-
- while $p != 0
- set $zval = *(struct _zval_struct **)$p->pData
-
- set $i = $ind
- while $i > 0
- printf " "
- set $i = $i - 1
- end
-
- if $p->nKeyLength > 0
- printf "\"%s\" => ", $p->arKey
- else
- printf "%d => ", $p->h
- end
-
- ____printzv $zval 1
- set $p = $p->pListNext
- end
-end
-
-define print_ht
- set $ind = 1
- printf "[0x%08x] {\n", $arg0
- ____print_ht $arg0
- printf "}\n"
-end
-
-document print_ht
- dumps elements of HashTable made of zval
-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
- 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
- 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
- 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 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
240 CODING_STANDARDS
@@ -1,240 +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.
-
-
-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.
-
- (see also http://www.tuxedo.org/~esr/jargon/html/entry/indent-style.html)
-
-[3] Be generous with whitespace and braces. Always prefer:
-
- if (foo) {
- bar;
- }
-
- to:
-
- if(foo)bar;
-
- 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.
-
-[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.
-
-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
10,342 ChangeLog
0 additions, 10,342 deletions not shown
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
492 EXTENSIONS
@@ -1,492 +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: apache2
-PRIMARY MAINTAINER: Aaron Bannert <aaron@php.net>
-MAINTENANCE: Maintained
-STATUS: Experimental
--------------------------------------------------------------------------------
-EXTENSION: cgi
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: fhttpd
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: isapi
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: nsapi
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: phttpd
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: pi3web
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: roxen
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: servlet
-PRIMARY MAINTAINER: Sam Ruby <rubys@us.ibm.com>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: thttpd
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: webjames
-PRIMARY MAINTAINER: Alex Waugh <alex@alexwaugh.com>
-MAINTENANCE: Maintained
-STATUS: Experimental
--------------------------------------------------------------------------------
-
-
-== Database extensions ==
-
--------------------------------------------------------------------------------
-EXTENSION: dba
-PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: dbase
-PRIMARY MAINTAINER: Jim Winstead <jimw@php.net>
-MAINTENANCE: Odd Fixes
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: dbx
-PRIMARY MAINTAINER: Marc Boeren <M.Boeren@guidance.nl>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 4.0.6
-COMMENT: DB abstraction for odbc, mysql, pgsql, mssql, fbsql and more, see documentation
--------------------------------------------------------------------------------
-EXTENSION: filepro
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: hyperwave
-PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: informix
-PRIMARY MAINTAINER: Danny Heijl <Danny.Heijl@cevi.be>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: ingres_ii
-PRIMARY MAINTAINER: David H�not <henot@php.net>
-MAINTENANCE: Maintained
-STATUS: Experimental
-SINCE: 4.0.2
--------------------------------------------------------------------------------
-EXTENSION: interbase
-PRIMARY MAINTAINER: Jouni Ahto <jouni.ahto@exdec.fi>
-MAINTENANCE: Odd Fixes
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: msql
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: msession
-PRIMARY MAINTAINER Mark L. Woodward mlwmohawk@mohawksoft.com
-MAINTENANCE: Maintained
-STATUS: Working/Experimental
-COMMENT: Tested on Linux, should work on other UNIX platforms. Backend server code can compile under Windows.
--------------------------------------------------------------------------------
-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: pgsql
-PRIMARY MAINTAINER: 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: sybase
-MAINTENANCE: Unknown
-STATUS: Not Working
--------------------------------------------------------------------------------
-EXTENSION: sybase_ct
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: oci8
-PRIMARY MAINTAINER: Thies C. Arntzen <thies@thieso.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: odbc
-PRIMARY MAINTAINER: Daniel R. Kalowsky <kalowsky@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-COMMENT: Working
--------------------------------------------------------------------------------
-EXTENSION: oracle
-PRIMARY MAINTAINER: Thies C. Arntzen <thies@thieso.net>
-MAINTENANCE: Maintained
-STATUS: Working
-COMMENT: Using the new OCI8 driver is encouraged where possible.
--------------------------------------------------------------------------------
-
-
-== Other extensions ==
-
--------------------------------------------------------------------------------
-EXTENSION: aspell
-MAINTENANCE: Unknown
-STATUS: Working
-COMMENT: For aspell .27 and greater, check out the pspell extension
--------------------------------------------------------------------------------
-EXTENSION: bcmath
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: bz2
-PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
-MAINTENANCE: Odd Fixes
-STATUS: Working
-SINCE: 4.0.3
--------------------------------------------------------------------------------
-EXTENSION: dio
-PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
-MAINTENANCE: Orphaned
-STATUS: Working
-SINCE: 4.0.6
--------------------------------------------------------------------------------
-EXTENSION: cyrus
-PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
-MAINTENANCE: Orphaned
-STATUS: Working
-SINCE: 4.0.6
--------------------------------------------------------------------------------
-EXTENSION: calendar
-PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
-MAINTENANCE: Odd Fixes
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: com
-PRIMARY MAINTAINER: Harald Radi <h.radi@nme.at>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: cpdf
-PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: crack
-MAINTENANCE: Unknown
-STATUS: Experimental
-SINCE: 4.0.5
--------------------------------------------------------------------------------
-EXTENSION: ctype
-PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: curl
-PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 4.0.2
--------------------------------------------------------------------------------
-EXTENSION: cybercash
-PRIMARY MAINTAINER: Evan Klinger <evan715@sirius.com>
-MAINTENANCE: Maintained
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: domxml
-PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
-MAINTENANCE: Maintained
-STATUS: Experimental
--------------------------------------------------------------------------------
-EXTENSION: dotnet
-PRIMARY MAINTAINER: Sam Ruby <rubys@us.ibm.com>
-MAINTENANCE: Maintained
-STATUS: Experimental
--------------------------------------------------------------------------------
-EXTENSION: exif
-PRIMARY MAINTAINER: Marcus Boerger <helly@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 4.2
--------------------------------------------------------------------------------
-EXTENSION: fdf
-PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
-MAINTENANCE: Maintained
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: ftp
-PRIMARY MAINTAINER: Stefan Esser (sesser@php.net)
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: gd
-PRIMARY MAINTAINER: Rasmus Lerdorf <rasmus@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: gettext
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: gmp
-MAINTENANCE: Unknown
-STATUS: Unknown
-SINCE: 4.0.4
--------------------------------------------------------------------------------
-EXTENSION: icap
-MAINTENANCE: Unknown
-STATUS: Obsolete
--------------------------------------------------------------------------------
-EXTENSION: iconv
-PRIMARY MAINTAINER: Moriyoshi Koizumi <moriyoshi@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: imap
-PRIMARY MAINTAINER: Chuck Hagenbuch <chuck@horde.org>
-MAINTENANCE: Odd Fixes
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: java
-PRIMARY MAINTAINER: Sam Ruby <rubys@us.ibm.com>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: ldap
-PRIMARY MAINTAINER: Stig Venaas <venaas@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: mbstring
-PRIMARY MAINTAINER: Rui Hirokawa <hirokawa@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: mcal
-PRIMARY MAINTAINER: Chuck Hagenbuch <chuck@horde.org>
-MAINTENANCE: Odd Fixes
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: mcrypt
-PRIMARY MAINTAINER: Derick Rethans <d.rethans@jdimedia.nl>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: mhash
-PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: muscat
-PRIMARY MAINTAINER: Sam Liddicott <sam@ananova.com>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 4.0.5
-COMMENT: Not tested against windows, only core API completed, rest under development
--------------------------------------------------------------------------------
-EXTENSION: openssl
-PRIMARY MAINTAINER: Wez Furlong <wez@php.net>
-MAINTENANCE: Maintained
-STATUS: Experimental
-SINCE: 4.0.4
--------------------------------------------------------------------------------
-EXTENSION: overload
-PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
-MAINTENANCE: Maintained
-STATUS: Experimental
--------------------------------------------------------------------------------
-EXTENSION: pcre
-PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: pdf
-PRIMARY MAINTAINER: Uwe Steinmann <steinm@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: pfpro
-PRIMARY MAINTAINER: David Croft <david@infotrek.co.uk>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 4.0.2
--------------------------------------------------------------------------------
-EXTENSION: posix
-PRIMARY MAINTAINER: Kristian K�hntopp <kris@koehntopp.de>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: printer
-PRIMARY MAINTAINER: Daniel Beulshausen <daniel@php4win.de>
-MAINTENANCE: Maintained
-STATUS: Working
-SINCE: 4.0.4
-COMMENT: Only for Win32
--------------------------------------------------------------------------------
-EXTENSION: pspell
-PRIMARY MAINTAINER: Vlad Krupin <phpdevel@echospace.com>
-MAINTENANCE: Unknown
-STATUS: Unknown
-SINCE: 4.0.2
--------------------------------------------------------------------------------
-EXTENSION: qtdom
-MAINTENANCE: Unknown
-STATUS: Experimental
-SINCE: 4.0.4
--------------------------------------------------------------------------------
-EXTENSION: readline
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: recode
-PRIMARY MAINTAINER: Kristian K�hntopp <kris@koehntopp.de>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: sablot
-PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
-MAINTENANCE: Obsolete
-STATUS: Experimental
-SINCE: 4.0.3
--------------------------------------------------------------------------------
-EXTENSION: satellite
-PRIMARY MAINTAINER: David Eriksson <eriksson@php.net>
-MAINTENANCE: Odd Fixes
-STATUS: Experimental
-SINCE: 4.0.3
--------------------------------------------------------------------------------
-EXTENSION: session
-PRIMARY MAINTAINER: Sascha Schumann <sascha@schumann.cx>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: shmop
-PRIMARY MAINTAINER: Ilia Alshanetsky <iliaa@php.net>
-MAINTENANCE: Maintained
-STATUS: Experimental
-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: Experimental
-SINCE: 4.0.2
--------------------------------------------------------------------------------
-EXTENSION: swf
-PRIMARY MAINTAINER: Sterling Hughes <sterling@php.net>
-MAINTENANCE: Orphaned
-STATUS: Deprecated (Use the ming swf extension instead)
-COMMENT: Only for Unix (won't change)
--------------------------------------------------------------------------------
-EXTENSION: sysvsem
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: sysvshm
-MAINTENANCE: Unknown
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: vpopmail
-MAINTENANCE: Unknown
-STATUS: Experimental
-SINCE: 4.0.5
--------------------------------------------------------------------------------
-EXTENSION: wddx
-PRIMARY MAINTAINER: Andrei Zmievski <andrei@php.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: xml
-PRIMARY MAINTAINER: Thies C. Arntzen <thies@thieso.net>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: xslt
-PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
-MAINTENANCE: Odd Fixes
-STATUS: Working (mostly)
--------------------------------------------------------------------------------
-EXTENSION: yaz
-PRIMARY MAINTAINER: Adam Dickmeiss <adam@indexdata.dk>
-MAINTENANCE: Maintained
-STATUS: Unknown
-SINCE: 4.0.1
--------------------------------------------------------------------------------
-EXTENSION: yp
-MAINTENANCE: Unknown
-STATUS: Unknown
--------------------------------------------------------------------------------
-EXTENSION: zlib
-PRIMARY MAINTAINER: Stefan Roehrich <sr@linux.de>
-MAINTENANCE: Maintained
-STATUS: Working
--------------------------------------------------------------------------------
-EXTENSION: zziplib
-PRIMARY MAINTAINER: Hartmut Holzgraefe <hholzgra@php.net>
-MAINTENANCE: Odd Fixes
-STATUS: Working
-SINCE: 4.0.5
--------------------------------------------------------------------------------
-# iptc?
View
422 INSTALL
@@ -1,422 +0,0 @@
-Installation Instructions for PHP 4
------------------------------------
-
-STOP!
-
-Before going any further, please remember you are going to find more
-up to date instructions in the online manual, located here:
-
-http://www.php.net/manual/en/install.apache.php
-
-For Apache 2, instructions and up-to-date information regarding it's
-support status, is available here:
-
-http://www.php.net/manual/en/install.apache2.php
-
-It is strongly recommended that you read the manual page before going
-further. However, for the impatient, here is a quick set of steps that
-will build PHP as (first) a dynamic Apache module (DSO) for Apache 1.3.x
-with MySQL support and then a static module. A more verbose explanation follows.
-
-For installing PHP on other web servers, refer to one of the following
-files:
-
- sapi/aolserver/README
- sapi/pi3web/README
- sapi/servlet/README
- sapi/thttpd/README
- README.Zeus
-
-Some notes:
-
-1: Only install either the static module or the dynamic one. Do not
- install both.
-
-2: If you are recompiling PHP to add new extensions or upgrading
- something like GD, remove the config.cache file before you re-run
- configure.
-
-3: If you are on Linux and have installed shared libraries, make
- sure the location of these shared libraries are listed in your
- /etc/ld.so.conf file. For example, if you have:
-
- /usr/local/lib/mysql/libmysqlclient.so
-
- Make sure /etc/ld.so.conf contains:
-
- /usr/local/lib/mysql
-
- Then run ldconfig.
-
-If you want both PHP 3 and 4 modules in the same Apache server, check the
-bottom of this file for instructions.
-
-INSTALLATION WITH THE ZEUS WEB SERVER:
---Please see the 'README.Zeus' file included in this distribution
-
-
-QUICK INSTALL (DSO)
-
-For this to work your Apache httpd must have mod_so enabled.
-Check using httpd -l. You should see something like:
-
-Compiled-in modules:
- http_core.c
- mod_so.c
-
-Chances are you will see a lot more modules than these two. That's ok,
-as long as mod_so.c shows up you can proceed with the following steps:
-
-$ gunzip -c php-4.x.y.tar.gz | tar xf -
-$ cd php-4.x.y
-$ ./configure --with-mysql --with-apxs
-$ make
-$ make install
-
-If you get an error telling you that the apxs script could not be found,
-look for it on your system and if you find it, provide the full path to it
-as: --with-apxs=/path/to/apxs
-
-Make sure you specify the version of apxs that is actually installed on
-your system and NOT the one that is in the apache source tarball.
-
-Next you must copy php.ini-dist to the appropriate place (normally
-/usr/local/lib/php.ini) and edit it as necessary to set PHP options.
-
-The only thing left to do is to edit your httpd.conf file and make sure the
-PHP 4 mime type is there and uncommented. You need a line that looks like
-this:
-
- AddType application/x-httpd-php .php
-
-Then restart your server (apachectl restart) and you should be able to
-serve up PHP files now. Make a test file called test.php and put some
-PHP tags in it. Like <?phpinfo()?>, for example.
-
-
-QUICK INSTALL (Static)
-
-$ gunzip -c apache_1.3.x.tar.gz | tar xf -
-$ cd apache_1.3.x
-$ ./configure
-$ cd ..
-
-$ gunzip -c php-4.x.y.tar.gz | tar xf -
-$ cd php-4.x.y
-$ ./configure --with-mysql --with-apache=../apache_1.3.x
-$ make
-$ make install
-
-$ cd ../apache_1.3.x
-$ ./configure --prefix=/www --activate-module=src/modules/php4/libphp4.a
- (The above line is correct! Yes, we know libphp4.a does not exist at this
- stage. It isn't supposed to. It will be created.)
-$ make
- (you should now have an httpd binary which you can copy to your Apache bin dir if
- is is your first install then you need to "make install" as well)
-$ cd ../php-4.x.y
-$ cp php.ini-dist /usr/local/lib/php.ini
-You can edit /usr/local/lib/php.ini file to set PHP options.
-Edit your httpd.conf or srm.conf file and add:
- AddType application/x-httpd-php .php
-
-
-VERBOSE INSTALL
-
-Chances are you are reading this because the quick install steps above
-did not work for you. If this is the case, congratulations, you are
-among the elite few that actually reads documentation. It really is
-not a difficult install and once you have done it once you will fly
-through it.
-
-Installing PHP can be done in four simple steps:
-
-1. Unpack your distribution file.
-
- You will have downloaded a file named something like php-4.x.y.tar.gz.
- Unzip this file with a command like: gunzip php-4.x.y.tar.gz
-
- Next you have to untar it with: tar -xvf php-4.x.y.tar
-
- This will create a php-4.x.y directory. cd into this new directory.
-
-2a. Configure PHP (Dynamic Module) - Skip to 2b if you wish to build
- a static module
-
- You now have to choose the options you would like. There are quite
- a few of them. To see a list, type: ./configure --help
-
- The only options that you are likely to want to use are the ones in
- the last section entitled, "--enable and --with options recognized:"
-
- A popular choice is to build the Apache module version. In order to
- build PHP as a dynamic module for Apache-1.3.x you have to first have
- Apache installed. Assuming Apache is already installed, make sure
- the shared object module is enabled. To check this, type: httpd -l
- You should see something like:
-
- Compiled-in modules:
- http_core.c
- mod_so.c
-
- You will most likely have a lot more modules than what is shown here.
- As long as mod_so.c shows up in the list, PHP should be happy.
-
- Now, type: ./configure --with-mysql --with-apxs
-
- If you get an error telling you that the apxs script could not be found,
- look for it on your system and if you find it, provide the full path to it
- as: --with-apxs=/path/to/apxs
-
- Make sure you specify the version of apxs that is actually installed on
- your system and NOT the one that is in the apache source tarball.
-
- You might also want other flags on this configure line. --with-mysql
- is just an example.
-
- There are a few things that can go wrong during this configure step.
- The most common is that you have asked for an option and that the
- configure script can not find the files required to enable this
- option in PHP. Chances are you can provide the full path to the
- base directory under which the related files were installed. For
- example, if you have installed the GD library in /opt/gd which means
- that /opt/gd/include has your GD header files and /opt/gd/lib contains
- your GD library files, you would use --with-gd=/opt/gd
-
- Skip to step 3 for compilation and installation instructions.
-
-2b. Configure PHP (Static Module) - Skip if you performed 2a
-
- You now have to choose the options you would like. There are quite
- a few of them. To see a list, type: ./configure --help
-
- The only options that you are likely to want to use are the ones in
- the last section entitled, "--enable and --with options recognized:"
-
- A popular choice is to build the Apache module version. You need
- to know where the source code directory for your Apache server is
- located. Then use an option like: --with-apache=/usr/local/src/apache
- if that is your Apache source code directory. If you only specify
- --with-apache, then it will default to look for your Apache source
- in /usr/local/etc/httpd.
-
- NOTE: The directory you specify should be the top-level of the
- unpacked Apache (or Stronghold) distribution. The configure program
- will automatically look for httpd.h in different directories under that
- location depending on which version of Apache, including Stronghold,
- you are running.
-
- For MySQL support, since newer versions of MySQL installs its various
- components under /usr/local, this is the default. If you have
- changed the location you can specify it with: --with-mysql=/opt/local
- for example. Otherwise just use: --with-mysql
-
- *NOTE* If you are using Apache 1.3b6 or later, you should run the
- Apache Configure script at least once before compiling PHP. It
- doesn't matter how you have Apache configured at this point.
-
- Skip to step 3b at this point.
-
-3. Compile and install the files. Simply type: make install
-
-3a. Dynamic Module Installation
-
- Nothing else is needed here. Proceed to step 4a.
-
-3b. Static Module Installation
-
- For the Apache module version this will copy the appropriate files
- to the src/modules/php4 directory in your Apache distribution if
- you are using Apache 1.3.x. If you are still running Apache 1.2.x
- these files will be copied directly to the main src directory.
-
- For Apache 1.3b6 and later, you can use the new APACI configuration
- mechanism. To automatically build Apache with PHP support, use:
-
- cd apache_1.3.x
- ./configure --prefix=/<path>/apache \
- --activate-module=src/modules/php4/libphp4.a
- make
- make install
-
- If you do not wish to use this new configuration tool, the old
- install procedure (src/Configure) will work fine.
-
- If you are using the old Apache ./Configure script, you will have to
- edit the Apache src/Configuration file manually. If you do not have
- this file, copy Configuration.tmpl to Configuration.
-
- For Apache 1.3.x add:
-
- AddModule modules/php4/libphp4.a
-
- For Apache 1.3.x don't do anything else. Just add this line and then
- run "./Configure" followed by "make".
-
- For Apache 1.2.x add:
-
- Module php4_module mod_php4.o
-
- For Apache 1.2.x you will also have to look in the libphp4.module file,
- which was copied to the src directory. The EXTRA_LIBS line in the Apache
- Configuration file needs to be set to use the same libs as specified on
- the LIBS line in libphp4.module. You also need to make sure to add
- "-L." to the beginning of the EXTRA_LIBS line.
-
- So, as an example, your EXTRA_LIBS line might look like:
-
- EXTRA_LIBS=-L. -lphp4 -lgdbm -ldb -L/usr/local/mysql/lib -lmysqlclient
-
- NOTE: You should not enclose the EXTRA_LIBS line in double-quotes, as it
- is in the libphp4.module file.
-
- Also, look at the RULE_WANTHSREGEX setting in the libphp4.module file
- and set the WANTHSREGEX directive accordingly in your Configuration file.
- This last step applies to versions of Apache prior to 1.3b3.
-
- This is a bit of a hassle, but should serve as incentive to move to
- Apache 1.3.x where this step has been eliminated.
-
- Once you are satisfied with your Configuration settings, type: ./Configure
- If you get errors, chances are that you forgot a library or made a typo
- somewhere. Re-edit Configuration and try again. If it goes well,
- type: make
-
- Assuming it compiles without errors, proceed to step 4b.
-
-4a. Setting up the server. (Dynamic Module)
-
- The make install command in step 3 should have done most of your
- work for you. It actually edits your httpd.conf file and tries to
- enable the dynamic PHP module. To verify this, look for a line that
- looks like this:
-
- LoadModule php4_module libexec/libphp4.so
-
- The actual path before the libphp4.so part might differ slightly. This
- is likely fine. If you are paranoid you can examine the output from the
- make install step to see where the libphp4.so file was actually put and
- place the full path to this file on this LoadModule line.
-
- If somewhere in your httpd.conf file you have a ClearModuleList line
- then you also need this line:
-
- AddModule mod_php4.c
-
- And finally you need to tell Apache which file extension should trigger
- PHP. You do this by creating a special mime type and associating it
- with an extension. We suggest using:
-
- AddType application/x-httpd-php .php
-
- You are however free to use any extension you wish, including .html.
-
- Note! If a line has a # at the beginning, then it is commented out
- and you need to remove the # for that line to take effect.
-
- Finally you need to copy php.ini-dist to the appropriate place
- (normally /usr/local/lib/php.ini) and edit if necessary.
-
- Once you have made these changes you should be ready to restart your
- server and try it out. Type: apachectl restart
-
-4b. Setting up the server. (Static Module)
-
- You should now have a new httpd binary. Shut down your existing server,
- if you have one, and copy this new binary overtop of it. Perhaps make
- a backup of your previous one first. Then edit your conf/httpd.conf file
- and add the line:
-
- AddType application/x-httpd-php .php
-
- There is also an interesting feature which can be quite instructive and
- helpful while debugging. That is the option of having colour syntax
- highlighting. To enable this, add the following line:
-
- AddType application/x-httpd-php-source .phps
-
- Any file ending in .phps will now be displayed with full colour syntax
- highlighting instead of being executed.
-
- Note that on some older server setups, the AddType lines are in the
- conf/srm.conf file instead of conf/httpd.conf.
-
- Note! If a line has a # at the beginning, then it is commented out
- and you need to remove the # for that line to take effect.
-
- When you are finished making changes to your httpd.conf file, you need
- to copy php.ini-dist to the appropriate place (normally
- /usr/local/lib/php.ini) and edit if necessary. You can then
- start up your server.
-
-5. Testing it all worked
-
- Create a test file named test.php in your web tree somewhere and
- put some test PHP tags in it. <?phpinfo()?> is a good first test.
- This tag tells PHP to do a braindump and tells you all sorts of things
- about itself.
-
-
-WHY DISABLING -fPIC WORKS ON LINUX
-
- From: Martin v. Loewis <martin@loewis.home.cs.tu-berlin.de>
- To: glibc-linux@ricardo.ecn.wfu.edu
- Subject: Re: Shared library -shared vs. -fpic
-
- [In reply to Kaz Kylheku <kaz@ashi.footprints.net>]
-
- > PIC stands for Position-Independent Code.
-
- Correct.
-
- > Code isn't position-independent (or ``relocatable'') cannot be
- > loaded at an arbitrary address;
-
- Wrong.
-
- > it requires some references to be patched at load time.
-
- Correct.
-
- > Shared libraries need to be relocatable because it's not known
- > beforehand what address they will be loaded at
-
- Correct, depending on the meaning of "relocatable". PIC code typically
- does not contain relocations; that's why its position-independent.
-
- > Just because you don't specify -fPIC doesn't mean that the compiler
- > won't emit position-independent code; the option prevents it from
- > emitting position-dependent code in situations where it otherwise
- > would.
-
- Correct. However, a non-trivial shared library typically won't be
- position-independent unless explicitly compiled with
- -fPIC. Linux/glibc indeed does not require a shared library to be
- position-independent; instead, it will perform the relocations in the
- binary, even if they refer to code pages. As a result, those relocated
- pages won't be shared across processes, anymore.
-
- Regards,
- Martin
-
-USING PHP 3 AND PHP 4 AS CONCURRENT APACHE MODULES
-
- With some (newer) installations of Apache, it's possible to compile both
- PHP 3 and PHP 4, and run them concurrently.
-
- Note, it's only really wise to do this if you need to use the PHP 3 engine
- to maintain backwards compatibility.
-
- To enable it, configure PHP 3 and PHP 4 to use APXS (--with-apxs) and the
- necessary link extensions (--enable-versioning). Otherwise, all standard
- installations instructions apply. For example:
-
- $ ./configure \
- --with-apxs=/apache/bin/apxs \
- --enable-versioning \
- --with-mysql \
-
-
-
-
-
View
68 LICENSE
@@ -1,68 +0,0 @@
---------------------------------------------------------------------
- The PHP License, Version 3.0
-Copyright (c) 1999 - 2003 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, freely available from
- <http://www.php.net/>".
-
-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>.
-
-This product 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: $(builddir)/zend_language_parser.h
-$(builddir)/zend_ini_scanner.lo: $(builddir)/zend_ini_parser.h
-
-$(builddir)/zend_language_scanner.c: $(srcdir)/zend_language_scanner.l
- $(LEX) -Pzend -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_language_scanner.l
-
-$(builddir)/zend_language_parser.h: $(builddir)/zend_language_parser.c
-$(builddir)/zend_language_parser.c: $(srcdir)/zend_language_parser.y
- $(YACC) -p zend -v -d $(srcdir)/zend_language_parser.y -o $@
-
-$(builddir)/zend_ini_parser.h: $(builddir)/zend_ini_parser.c
-$(builddir)/zend_ini_parser.c: $(srcdir)/zend_ini_parser.y
- $(YACC) -p ini_ -v -d $(srcdir)/zend_ini_parser.y -o $@
-
-$(builddir)/zend_ini_scanner.c: $(srcdir)/zend_ini_scanner.l
- $(LEX) -Pini_ -S$(srcdir)/flex.skl -o$@ -i $(srcdir)/zend_ini_scanner.l
-
-$(builddir)/zend_indent.lo $(builddir)/zend_highlight.lo $(builddir)/zend_compile.lo: $(builddir)/zend_language_parser.h
View
68 Makefile.global
@@ -1,68 +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)
-
-build-modules: $(PHP_MODULES)
-
-libphp5.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 $@
-
-libs/libphp5.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/libphp5.so
-
-install: $(install_targets)
-
-install-sapi: libphp5.la
- @echo "Installing PHP SAPI module"
- -@$(LIBTOOL) --silent --mode=install cp libphp5.la $(phptempdir)/libphp5.la >/dev/null 2>&1
- -@$(mkinstalldirs) $(INSTALL_ROOT)$(bindir)
- -@if test ! -r $(phptempdir)/libphp5.$(SHLIB_SUFFIX_NAME); then \
- for i in 0.0.0 0.0 0; do \
- if test -r $(phptempdir)/libphp5.$(SHLIB_SUFFIX_NAME).$$i; then \
- $(LN_S) $(phptempdir)/libphp5.$(SHLIB_SUFFIX_NAME).$$i $(phptempdir)/libphp5.$(SHLIB_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 && \
- $(INSTALL) modules/* $(INSTALL_ROOT)$(EXTENSION_DIR) >/dev/null 2>&1 || true
-
-install-tester:
- @echo "Installing regression tester: $(INSTALL_ROOT)$(PEAR_INSTALLDIR)/"
- @$(mkinstalldirs) $(INSTALL_ROOT)$(PEAR_INSTALLDIR)
- @$(INSTALL) -m 755 $(top_srcdir)/run-tests.php $(INSTALL_ROOT)$(PEAR_INSTALLDIR)
-
-install-su: install-pear install-tester
-
-test: $(SAPI_CLI_PATH)
- @TEST_PHP_EXECUTABLE=$(top_builddir)/$(SAPI_CLI_PATH) \
- TEST_PHP_SRCDIR=$(top_srcdir) \
- CC="$(CC)" \
- $(top_builddir)/$(SAPI_CLI_PATH) -d 'open_basedir=' -d 'safe_mode=0' -d 'output_buffering=0' $(top_srcdir)/run-tests.php $(TESTS)
-
-clean:
- 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 libphp5.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/libphp5.module buildmk.stamp
- egrep define'.*include/php' configure|sed 's/.*>//'|xargs rm -f
- find . -name Makefile | xargs rm -f
-
-.PHONY: all clean install distclean test
-.NOEXPORT:
View
2,539 NEWS
0 additions, 2,539 deletions not shown
View
115 README.CVS-RULES
@@ -1,115 +0,0 @@
-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.
-
- 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.
-
-
-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. Also see
- the note below about automatically updating NEWS in your commit message.
-
- 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.
-
-If a line begins with #, it is taken to be a comment and will not appear
-in the ChangeLog. If the line begins with @, it will be redirected to the
-NEWS file. 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 # or @ at the beginning of _every_ such line. Every
-entry in NEWS has to have a name after it, so if you did it with someone's
-help, put both your names there. Your name WILL NOT be automatically put
-at the end of the NEWS entry - so, please provide it yourself.
-
-Example. Say you modified two files, datetime.c and string.c. In datetime.c
-you added a new format option for 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:
-
-(PHP date) Added new 'K' format modifier for printing out number of
- days until New Year's Eve.
-@- Added new 'K' format modifier that will output the number of days
-@ until New Year's Eve. (Bob)
-
-For string.c:
-(php_trim) Fixed a memory leak resulting from improper use of zval_dtor().
-# Man, that thing was leaking all over the place!
-@- Fixed memory leak in trim(). (Bob)
-
-The lines above marked with @ will go into NEWS file automagically, and the
-# lines will be omitted from the ChangeLog. Alternatively, you might want
-to modify NEWS file directly and not use the @ lines.
-
-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 pgsql notice handler double free crash bug. Bug #14016
-@ Fixed pgsql notice handler double free crash bug. Bug #14016
-
-If you don't see your messages in ChangeLog and NEWS right away, don't worry!
-These files are updated once a day, so your stuff will not show up until
-somewhat later. Don't go adding stuff to NEWS by hand if you already put @
-lines in the commit message.
-
-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
193 README.EXT_SKEL
@@ -1,193 +0,0 @@
-(NOTE: you may also want to take a look at scripts/ext_skel_ng,
- a PHP-only alternative for this script thats supposed
- to replace it 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
127 README.PARAMETER_PARSING_API
@@ -1,127 +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
----------------
- l - long
- d - double
- s - string (with possible null bytes) and its length
- b - boolean, stored in zend_bool
- r - resource (stored in zval)
- a - array
- o - object (of any type)
- O - object (of specific type, specified by class entry)
- z - the actual zval
-
- 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 (only applies
- to 'a', 'o', 'O', 'r', and 'z'). If NULL is passed, the results
- pointer is set to NULL as well.
-
-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;
-}
-
-
-/* Get only the first three parameters (useful for varargs functions). */
-zval *z;
-zend_bool b;
-zval *r;
-if (zend_parse_parameters(3 TSRMLS_CC, "zbr!",
- &z, &b, &r) == FAILURE) {
- return;
-}
-
-
-/* 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;
-}
View
57 README.QNX
@@ -1,57 +0,0 @@
-QNX4 Installation Notes
------------------------
-
-NOTE: General installation instructions are in the INSTALL file
-
-
-1. To compile and test PHP3 you have to grab, compile and install:
- - GNU dbm library or another db library;
- - GNU bison (1.25 or later; 1.25 tested);
- - GNU flex (any version supporting -o and -P options; 2.5.4 tested);
- - GNU diffutils (any version supporting -w option; 2.7 tested);
-
-2. To use CVS version you may need also:
- - GNU CVS (1.9 tested);
- - GNU autoconf (2.12 tested);
- - GNU m4 (1.3 or later preferable; 1.4 tested);
-
-3. To run configure define -lunix in command line:
- LDFLAGS=-lunix ./configure
-
-4. To use Sybase SQL Anywhere define ODBC_QNX and CUSTOM_ODBC_LIBS in
- command line and run configure with --with-custom-odbc:
- CFLAGS=-DODBC_QNX LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc" ./configure --with-custom-odbc=/usr/lib/sqlany50
- If you have SQL Anywhere version 5.5.00, then you have to add
- CFLAGS=-DSQLANY_BUG
- to workaround its SQLFreeEnv() bug. Other versions has not been tested,
- so try without this flag first.
-
-5. To build the Apache module, you may have to hardcode an include path for
- alloc.h in your Apache base directory:
- - APACHE_DIRECTORY/src/httpd.h:
- change #include "alloc.h"
- to #include "APACHE_DIRECTORY/src/alloc.h"
- Unless you want to use system regex library, you have to hardcode also
- a path to regex.h:
- - APACHE_DIRECTORY/src/conf.h:
- change #include <regex.h>
- to #include "APACHE_DIRECTORY/src/regex/regex.h"
- I don't know so far why this required for QNX, may be it is Watcom
- compiler problem.
-
- If you building Apache module with SQL Anywhere support, you'll get
- symbol conflict with BOOL. It is defined in Apache (httpd.h) and in
- SQL Anywhere (odbc.h). This has nothing to do with PHP, so you have to
- fix it yourself someway.
-
-6. With above precautions, it should compile as is and pass regression
- tests completely:
- make
- make check
- make install
-
- Don't bother me unless you really sure you made that all but it
- still doesn't work.
-
-June 28, 1998
-Igor Kovalenko -- owl@infomarket.ru
View
155 README.SELF-CONTAINED-EXTENSIONS
@@ -1,155 +0,0 @@
-$Id$
-=============================================================================
-
-HOW TO CREATE A SELF-CONTAINED PHP EXTENSION
-
- A self-contained extension can be distributed independently of
- the PHP source. To create such an extension, two things are
- required:
-
- - Configuration file (config.m4)
- - Source code for your module
-
- We will describe now how to create these and how to put things
- together.
-
-PREPARING YOUR SYSTEM
-
- While the result will run on any system, a developer's setup needs these
- tools:
-
- GNU autoconf
- GNU automake
- GNU libtool
- GNU m4
-
- All of these are available from
-
- ftp://ftp.gnu.org/pub/gnu/
-
-CONVERTING AN EXISTING EXTENSION
-
- Just to show you how easy it is to create a self-contained
- extension, we will convert an embedded extension into a
- self-contained one. Install PHP and execute the following
- commands.
-
- $ mkdir /tmp/newext
- $ cd /tmp/newext
-
- You now have an empty directory. We will copy the files from
- the mysql extension:
-
- $ cp -rp php-4.0.X/ext/mysql/* .
-
- It is time to finish the module. Run:
-
- $ phpize
-
- You can now ship the contents of the directory - the extension
- can live completely on its own.
-
- The user instructions boil down to
-
- $ ./configure \
- [--with-php-config=/path/to/php-config] \
- [--with-mysql=MYSQL-DIR]
- $ make install
-
- The MySQL module will either use the embedded MySQL client
- library or the MySQL installation in MYSQL-DIR.
-
-
-DEFINING THE NEW EXTENSION
-
- Our demo extension is called "foobar".
-
- It consists of two source files "foo.c" and "bar.c"
- (and any arbitrary amount of header files, but that is not
- important here).
-
- The demo extension does not reference any external
- libraries (that is important, because the user does not
- need to specify anything).
-
-
- LTLIBRARY_SOURCES specifies the names of the sources files. You can
- name an arbitrary number of source files here.
-
-CREATING THE M4 CONFIGURATION FILE
-
- The m4 configuration can perform additional checks. For a
- self-contained extension, you do not need more than a few
- macro calls.
-
-------------------------------------------------------------------------------
-PHP_ARG_ENABLE(foobar,whether to enable foobar,
-[ --enable-foobar Enable foobar])
-
-if test "$PHP_FOOBAR" != "no"; then
- PHP_NEW_EXTENSION(foobar, foo.c bar.c, $ext_shared)
-fi
-------------------------------------------------------------------------------
-
- PHP_ARG_ENABLE will automatically set the correct variables, so
- that the extension will be enabled by PHP_NEW_EXTENSION in shared mode.
-
- The first argument of PHP_NEW_EXTENSION describes the name of the
- extension. The second names the source-code files. The third passes
- $ext_shared which is set by PHP_ARG_ENABLE/WITH to PHP_NEW_EXTENSION.
-
- Please use always PHP_ARG_ENABLE or PHP_ARG_WITH. Even if you do not
- plan to distribute your module with PHP, these facilities allow you
- to integrate your module easily into the main PHP module framework.
-
-CREATING SOURCE FILES
-
- ext_skel can be of great help when creating the common code for all modules
- in PHP for you and also writing basic function definitions and C code for
- handling arguments passed to your functions. See README.EXT_SKEL for further
- information.
-
- As for the rest, you are currently alone here. There are a lot of existing
- modules, use a simple module as a starting point and add your own code.
-
-
-CREATING THE SELF-CONTAINED EXTENSION
-
- Put config.m4 and the source files into one directory. Then, run phpize
- (this is installed during make install by PHP 4.0).
-
- For example, if you configured PHP with --prefix=/php, you would run
-
- $ /php/bin/phpize
-
- This will automatically copy the necessary build files and create
- configure from your config.m4.
-
- And that's it. You now have a self-contained extension.
-
-INSTALLING A SELF-CONTAINED EXTENSION
-
- An extension can be installed by running:
-
- $ ./configure \
- [--with-php-config=/path/to/php-config]
- $ make install
-
-ADDING SHARED MODULE SUPPORT TO A MODULE
-
- In order to be useful, a self-contained extension must be loadable
- as a shared module. I will explain now how you can add shared module
- support to an existing module called foo.
-
- 1. In config.m4, use PHP_ARG_WITH/PHP_ARG_ENABLE. Then you will
- automatically be able to use --with-foo=shared[,..] or
- --enable-foo=shared[,..].
-
- 2. In config.m4, use PHP_NEW_EXTENSION(foo,.., $ext_shared) to enable
- building the extension.
-
- 3. Add the following lines to your C source file:
-
- #ifdef COMPILE_DL_FOO
- ZEND_GET_MODULE(foo)
- #endif
View
379 README.STREAMS
@@ -1,379 +0,0 @@
-An Overview of the PHP Streams abstraction
-==========================================
-$Id$
-
-WARNING: some prototypes in this file are out of date.
-The information contained here is being integrated into
-the PHP manual - stay tuned...
-
-Please send comments to: Wez Furlong <wez@thebrainroom.com>
-
-Why Streams?
-============
-You may have noticed a shed-load of issock parameters flying around the PHP
-code; we don't want them - they are ugly and cumbersome and force you to
-special case sockets and files every time you need to work with a "user-level"
-PHP file pointer.
-Streams take care of that and present the PHP extension coder with an ANSI
-stdio-alike API that looks much nicer and can be extended to support non file
-based data sources.
-
-Using Streams
-=============
-Streams use a php_stream* parameter just as ANSI stdio (fread etc.) use a
-FILE* parameter.
-
-The main functions are:
-
-PHPAPI size_t php_stream_read(php_stream * stream, char * buf, size_t count);
-PHPAPI size_t php_stream_write(php_stream * stream, const char * buf, size_t
- count);
-PHPAPI size_t php_stream_printf(php_stream * stream TSRMLS_DC,
- const char * fmt, ...);
-PHPAPI int php_stream_eof(php_stream * stream);
-PHPAPI int php_stream_getc(php_stream * stream);
-PHPAPI char *php_stream_gets(php_stream * stream, char *buf, size_t maxlen);
-PHPAPI int php_stream_close(php_stream * stream);
-PHPAPI int php_stream_flush(php_stream * stream);
-PHPAPI int php_stream_seek(php_stream * stream, off_t offset, int whence);
-PHPAPI off_t php_stream_tell(php_stream * stream);
-PHPAPI int php_stream_lock(php_stream * stream, int mode);
-
-These (should) behave in the same way as the ANSI stdio functions with similar
-names: fread, fwrite, fprintf, feof, fgetc, fgets, fclose, fflush, fseek, ftell, flock.
-
-Opening Streams
-===============
-In most cases, you should use this API:
-
-PHPAPI php_stream *php_stream_open_wrapper(char *path, char *mode,
- int options, char **opened_path TSRMLS_DC);
-
-Where:
- path is the file or resource to open.
- mode is the stdio compatible mode eg: "wb", "rb" etc.
- options is a combination of the following values:
- IGNORE_PATH (default) - don't use include path to search for the file
- USE_PATH - use include path to search for the file
- IGNORE_URL - do not use plugin wrappers
- REPORT_ERRORS - show errors in a standard format if something
- goes wrong.
- STREAM_MUST_SEEK - If you really need to be able to seek the stream
- and don't need to be able to write to the original
- file/URL, use this option to arrange for the stream
- to be copied (if needed) into a stream that can
- be seek()ed.
-
- opened_path is used to return the path of the actual file opened,
- but if you used STREAM_MUST_SEEK, may not be valid. You are
- responsible for efree()ing opened_path. opened_path may be (and usually
- is) NULL.
-
-If you need to open a specific stream, or convert standard resources into
-streams there are a range of functions to do this defined in php_streams.h.
-A brief list of the most commonly used functions:
-
-PHPAPI php_stream *php_stream_fopen_from_file(FILE *file, const char *mode);
- Convert a FILE * into a stream.
-
-PHPAPI php_stream *php_stream_fopen_tmpfile(void);
- Open a FILE * with tmpfile() and convert into a stream.
-
-PHPAPI php_stream *php_stream_fopen_temporary_file(const char *dir,
- const char *pfx, char **opened_path TSRMLS_DC);
- Generate a temporary file name and open it.
-
-There are some network enabled relatives in php_network.h:
-
-PHPAPI php_stream *php_stream_sock_open_from_socket(int socket, int persistent);
- Convert a socket into a stream.
-
-PHPAPI php_stream *php_stream_sock_open_host(const char *host, unsigned short port,
- int socktype, int timeout, int persistent);
- Open a connection to a host and return a stream.
-
-PHPAPI php_stream *php_stream_sock_open_unix(const char *path, int persistent,
- struct timeval *timeout);
- Open a UNIX domain socket.
-
-
-Stream Utilities
-================
-
-If you need to copy some data from one stream to another, you will be please
-to know that the streams API provides a standard way to do this:
-
-