Marcus Boerger
64c353ab79
- MFH zend_fcall_info_*() and parameter parsing option 'f'
...
# Right now i see this as the best option but we might shuffle code around
# later if someone comes up with a better solution.
2006-06-07 09:43:54 +00:00
Antony Dovgal
9dd24c6d87
fix error messages when converting objects to other types
...
add new function
MFB will follow soon
2006-05-25 10:01:06 +00:00
Marcus Boerger
637a40423c
- MFH as discussed
...
. zend_exception_get_default() -> zend_exception_get_default(TSRMLS_D)
. zend_get_error_exception() -> zend_get_error_exception(TSRMLS_D)
. added E_RECOVERABLE_ERROR
. added ZEND_TOSTRING_FUNC_NAME
. added __tostring function cache to zend_class_entry
. added ZEND_NAMED_ME
. modified ZEND_ME_MAPPING to support method flags
. added ZEND_MN
. method entries now use prefix "zim_" instead of "zif_"
. drop EG(ze1_compatibility_mode)
. changed cast handler, now without (int should_free):
typedef int (*zend_object_cast_t)(zval *readobj, zval *retval, int type TSRMLS_DC);
. changed get_iterator, now receives whether value is by ref:
zend_object_iterator *(*get_iterator)(zend_class_entry *ce, zval *object, int by_ref TSRMLS_DC);
. added zend_objects_store_add_ref_by_handle
. added zend_objects_store_del_ref_by_handle
. convert_to_explicit_type(pzv, type)
2006-05-09 23:53:23 +00:00
Marcus Boerger
35ce5db25e
- Add missing function for completeness
2006-03-05 16:12:24 +00:00
Marcus Boerger
941b0651dc
- MFH: Function deprecation flag
2006-02-25 18:25:45 +00:00
Andi Gutmans
61e93ccfe8
- Update copyright notices to 2006
2006-01-04 23:53:05 +00:00
Marcus Boerger
0cd997d79c
- Simplify and synch is_callable_ex() with actual execution code
...
. Allow array($this, 'parent::method') for function 'pointers'
. Spit out E_STRICT in case of erroneous use of function 'pointers'
2005-12-16 22:15:41 +00:00
Dmitry Stogov
8768ab94b3
Fixed bug #34729 (Crash in ZTS mode under Apache)
2005-12-01 11:48:17 +00:00
Dmitry Stogov
b05b949a47
Fixed bug #34879 (str_replace, array_map corrupt negative array indexes on 64-bit platforms)
2005-10-28 14:46:30 +00:00
Marcus Boerger
2486b846cc
- MFH zend_is_callable_ex() returns zend_class_entry* if available
2005-10-25 23:19:59 +00:00
Dmitry Stogov
248345d920
Support for class constants and static members for internal classes
2005-09-01 10:05:32 +00:00
foobar
916815b779
Bump up the year
2005-08-03 13:30:58 +00:00
Marcus Boerger
53e5260662
- Add convenience function zend_is_callable_ex() and base zend_is_callable
...
and zend_make_callable on it. This functions allows to check if a php
variable is a callable function and returns its function pointer as well
as object if possible.
# Commit this now so we can use it in 5.1.* series as discussed with Andi.
2005-07-28 20:55:50 +00:00
Dmitry Stogov
70bd938bbd
Fixed bug in new module statrup mechanism
2005-07-18 16:20:08 +00:00
Dmitry Stogov
345e0255b5
Fixed bug #33512 (Add missing support for isset()/unset() overloading to complement the property get/set methods)
2005-07-07 16:07:09 +00:00
Dmitry Stogov
1d33a3e95e
Fixed bug #31158 (array_splice on $GLOBALS crashes)
2005-07-04 10:01:10 +00:00
Dmitry Stogov
2ca2dc0b08
Restored old behavior of zend_statup_module()
2005-06-30 13:43:00 +00:00
Stanislav Malyshev
d5a1296008
fix various "Class entry requested for an object without PHP class" messages
...
when working with non-PHP objects.
# Using Z_OBJCE(object)->name is usually bad idea unless you know it's
# a pure PHP object
2005-06-27 18:13:13 +00:00
Dmitry Stogov
c0c7a9f010
Improved PHP extension loading mechanism with support for module dependencies and conflicts.
2005-06-17 09:36:26 +00:00
Dmitry Stogov
aedbdb087d
Allowed return by refrence from internal functions
2005-06-16 14:56:13 +00:00
Dmitry Stogov
1a72341328
Added array type hinting. (This patch requires full re-make)
2005-05-26 13:46:17 +00:00
Dmitry Stogov
c81db6bc56
Fixed bug #29210 (Function: is_callable - no support for private and protected classes)
2005-04-27 15:45:36 +00:00
Marcus Boerger
67a226d910
- Add ReflectionProperty::getDocComment()
2005-04-19 22:04:59 +00:00
Marcus Boerger
c087f07233
- These must be initailized
2005-02-27 22:18:55 +00:00
Hartmut Holzgraefe
d88c2b18d4
added some missing zend_[declare|update]_property_...() convenience
...
functions for bool, double and binary safe string data
2005-02-04 20:24:21 +00:00
Marcus Boerger
1d5c13bdad
- Fix #31651 (ReflectionClass::getDefaultProperties segfaults with arrays.)
2005-01-22 12:23:01 +00:00
Andi Gutmans
11bcaedfc8
- Rename delete_global_variable() to zend_delete_global_variable()
2004-10-04 20:17:06 +00:00
Andi Gutmans
db507dd153
- Commit the variable fetch optimization.
...
- Extensions which delete global variables need to use new special function
- delete_global_variable() (I'm about to rename it) to remove them.
- Will post to internals@ or via commit messages if there's anything else.
2004-10-04 19:54:35 +00:00
Marcus Boerger
e39f3f3f48
Simplify/Optmize magic method calls (__get/__set/__call/__clone/__destruct)
2004-09-28 22:55:22 +00:00
Andi Gutmans
6bd3c36a53
- Recommit:
...
- Check signature of magic methods
- Register __get/__set/__call for internal classes
2004-09-09 16:51:45 +00:00
Andi Gutmans
96ab56e146
- Roll back VM commit
2004-09-09 16:47:22 +00:00
Marcus Boerger
be24e2455c
- Check signature of magic methods
...
- Register __get/__set/__call for internal classes
2004-09-09 09:51:43 +00:00
Andi Gutmans
56f8195fe5
- Nuke empty_string. It is a reminanent from the time where RETURN_FALSE()
...
used to return "" and not bool(false). It's not worth keeping it because
STR_FREE() and zval_dtor() always have to check for it and it slows down
the general case. In addition, it seems that empty_string has been abused
quite a lot, and was used not only for setting zval's but generally in
PHP code instead of "", which wasn't the intention. Last but not least,
nuking empty_string should improve stability as I doubt every place
correctly checked if they are not mistakenly erealloc()'ing it or
calling efree() on it.
NOTE: Some code is probably broken. Each extension maintainer should
check and see that my changes are OK. Also, I haven't had time to touch
PECL yet. Will try and do it tomorrow.
2004-07-19 07:19:50 +00:00
Marcus Boerger
c756609658
Add missing declaration
2004-06-10 12:32:09 +00:00
Marcus Boerger
33cdc9ed36
Fix order of macro parameter (synch with other macros)
2004-04-12 13:02:54 +00:00
Marcus Boerger
5230321731
- Fix Reflection class names
...
- Add ability to get the extension an internal class was defined in
# This is the patch Andi and me used to search for underscrores...
2004-03-30 18:36:53 +00:00
Derick Rethans
6535933f7c
- Replaced the exec_finished hook by the zend_post_deactive hook for
...
extensions. The new hook will be run after the symbol table and destructors
are run. (Derick)
2004-03-16 22:27:26 +00:00
Marcus Boerger
8d45fece42
Fix zend_parse_method_parameters_ex() and make it consistant with
...
zend_parse_method_parameters().
# Obviously its only place of use is in pdo just right now.
2004-03-02 16:17:58 +00:00
Zeev Suraski
7086634a0b
- Improve ARG_INFO() macros to support supplying required_num_args
...
- Initial fix for foreach($o->mthd()->arr) crash (now leaks)
2004-02-25 14:56:45 +00:00
Hartmut Holzgraefe
1727c6a2bb
more EXTERN_C wrapping of ZEND_API prototypes
2004-02-20 08:03:27 +00:00
Zeev Suraski
e7e0f7d4b4
- Check return-by-reference bit when implementing interface prototypes
...
- Add infrastructure for built-in functions to hint whether they
return by reference or not. It is NOT currently used for anything,
except for interface prototypes (you can use it to request that the
function that implements your prototype returns by reference or
doesn't return by reference).
For downwards compatibility - by default, interface prototypes are
agnostic as to whether the function that implements them returns
by reference or not. Use ZEND_BEGIN_ARG_INFO_EX() with
ZEND_RETURN_VALUE/ZEND_RETURN_REFERENCE to change that.
- Fix ArrayAccess::getOffset() to conduct additional checks.
If your getOffset() should work with multidimensional arrays - it
must return by reference.
2004-02-12 13:49:55 +00:00
Marcus Boerger
805dfab890
Add zend_get_module_started() to quickly check whether a module is present
...
and its MINIT function has been called.
2004-01-19 00:39:29 +00:00
Marcus Boerger
61fc2a9209
Add missing macro
...
# by popular demand, more and more exts need this
2004-01-12 00:19:40 +00:00
foobar
ccfc46b0aa
- Happy new year and PHP 5 for rest of the files too..
...
# Should the LICENSE and Zend/LICENSE dates be updated too?
2004-01-08 17:33:29 +00:00
Marcus Boerger
15964bb35d
Fix order of class_entry member initialization (needed for example for DOM)
...
# You need to completley rebuild PHP after this patch.
2003-12-28 15:18:05 +00:00
Wez Furlong
273c19334b
export these symbols for use by SPL as a shared extension
2003-12-22 13:09:15 +00:00
Marcus Boerger
32927a9ffb
Free the zval container only if it should be freed and was not copied.
2003-12-02 07:09:46 +00:00
Marcus Boerger
6344f662a5
This takes the address of a zval ptr
2003-11-29 18:23:35 +00:00
Marcus Boerger
c7d27ad938
Add macros to return values of other zvals.
...
This is needed because one cannot use REPLACE_ZVAL_VALUE with return_value.
2003-11-29 18:15:11 +00:00
Marcus Boerger
c21d597426
Add method alias macro
2003-11-18 19:18:54 +00:00
Marcus Boerger
26bfe3f83a
Add zend_make_callable() which allows to make zval's callable zval's.
...
At the moment this function only converts strings of the form class::method
to an array(class,method).
2003-10-25 22:58:06 +00:00
Marcus Boerger
3c62b3b5ac
Expand Interface C API.
...
In short: zend_class_entry->interface_gets_implemented() allows to modify
the class entry of a class when an interface gets implemented.
2003-10-22 19:59:58 +00:00
Marcus Boerger
b0b82541e8
Fix class/iterator relationship & handling
2003-10-18 18:43:31 +00:00
Marcus Boerger
25aa8b715e
Added c-api for iterators
...
# After 4 Month work and endless discussions...
2003-10-17 17:19:44 +00:00
Marcus Boerger
4073a08488
Add oo support function zend_class_implements()
2003-10-15 06:24:17 +00:00
Shane Caraveo
05152d3845
this little piggy broke lots of things...eg. _function_check_flag in reflection api.
2003-10-05 01:54:46 +00:00
Moriyoshi Koizumi
be5cbf9999
Ensure lval to have a *boolean* value.
2003-10-03 16:57:41 +00:00
Marcus Boerger
7bbbd5035d
Fix handling of static properties initialized to arrays
2003-09-03 18:01:22 +00:00
Marcus Boerger
047a574e6c
- Add zend_merge_properties() which is designed to serve *_fetch_object().
...
- Explain drawbacks of object_and_properties_init and zend_merge_properties.
#
# I guess we can live with the purity problem of potentially calling __set()
# of an object which wasn't already ctored.
#
2003-08-29 23:27:22 +00:00
Marcus Boerger
19ec7a09fc
- Provide appropriate way to destroy internal zval's.
...
- Allow internal zval's of type string and disallow complex types.
- Define the default string for extensions at class level instead of ctor.
2003-08-24 17:32:47 +00:00
Marcus Boerger
cec053f707
Don't identify alias'ed functions
2003-08-24 16:35:58 +00:00
Marcus Boerger
eef1b7b1e8
One of PPP is needed, too
2003-08-24 11:24:10 +00:00
Marcus Boerger
1c2512ddea
- Add fn_flag ZEND_ACC_ALIAS
...
- Unify way of function_entry generation by new macro ZEND_FENTRY
2003-08-24 11:09:45 +00:00
Marcus Boerger
38805f2809
Add property read code and use that in default exception class
2003-08-24 00:36:53 +00:00
Marcus Boerger
baaa4c903d
Internal classes can now have default properties.
2003-08-23 19:37:39 +00:00
Marcus Boerger
717b5afe1d
Fix warnings
2003-08-17 18:56:54 +00:00
Sascha Schumann
c7d9be97ca
explicitly cast size_t to zend_uint to avoid warnings on 64 bit platforms.
2003-08-17 13:45:51 +00:00
Marcus Boerger
fe1a086d19
Simplify abstract method declaration
2003-08-16 20:46:22 +00:00
Zeev Suraski
92b4013e8d
Try to put an end to the endless number of call_user_function variants.
...
zend_call_function() now takes a structure that should contain all of the
necessary information. If further information is necessary in the future,
then we'll be able to add it without having to introduce a new function.
As for caching - the 2nd, optional argument is a struct that can hold all
of the information that's necessary to invoke the function, including its
handler, scope and object it operates on (if any). Note that you may only
use a cache if the arguments you provide to zend_call_function() are
identical to the ones of the last call, except for the argument and return
value information.
The recently introduced fast_call_user_function() was removed
I fixed most of the places that used fast_call_user_function() to use caching
but there are still some that need to be fixed (XML and reflection)
2003-08-05 10:24:40 +00:00
Zeev Suraski
f8bbafd604
ntroduce infrastructure for supplying information about arguments,
...
including:
- Whether or not to pass by ref (replaces the old arg_types, with arg_info)
- Argument name (for future use, maybe introspection)
- Class/Interface name (for type hints)
- If a class/interface name is available, whether to allow a null instance
Both user and builtin functions share the same data structures.
To declare a builtin function that expects its first arg to be an instance
of class 'Person', its second argument as a regular arg, and its third by
reference, use:
ZEND_BEGIN_ARG_INFO(my_func_arg_info, 0)
ZEND_ARG_OBJ_INFO(0, someone, Person, 1)
ZEND_ARG_PASS_INFO(0)
ZEND_ARG_PASS_INFO(1)
ZEND_END_ARG_INFO();
and use my_func_arg_info as the arg_info parameter to the ZEND_FE() family
of macros.
The first arg to each ZEND_ARG_*() macro is whether or not to pass by ref.
The boolean arg to ZEND_BEGIN_ARG_INFO() tells the engine whether to treat
the arguments for which there's no explicit information as pass by reference
or not.
The boolean argument to ZEND_ARG_OBJ_INFO() (4th arg) is whether or not to allownull values.
2003-08-03 17:40:44 +00:00
Zeev Suraski
2fd4ffce17
Add exec_finished() callback for modules - this is the last place where the
...
modules may touch the symbol table reliably
2003-07-30 16:13:52 +00:00
George Schlossnagle
0229aad042
reverted at Andi's request. replaced with more generic wrapper.
2003-07-21 06:05:58 +00:00
Zeev Suraski
134338522f
Rework zend_do_declare_property and related code into one code base
2003-07-07 16:22:56 +00:00
George Schlossnagle
daf3ac65ea
add convenience functions or adding class properties. Ok'd for commit by Andi.
2003-07-06 19:55:20 +00:00
James Cox
f68c7ff249
updating license information in the headers.
2003-06-10 20:04:29 +00:00
Stanislav Malyshev
039c174337
rm namespace leftovers
2003-06-04 08:16:55 +00:00
Stanislav Malyshev
f7f5a5ea6b
MEGA-patch: namespaces are R.I.P.
2003-06-02 12:13:11 +00:00
Marcus Boerger
b1b8ed64dc
Revert to sizeof()
2003-05-23 18:37:36 +00:00
Sterling Hughes
909eafc2b0
add fast_call_user_function()
2003-05-20 16:44:42 +00:00
Hartmut Holzgraefe
cb71ac03cb
C++ compile fixes
2003-05-20 13:21:26 +00:00
Marcus Boerger
29a3586f7b
Allow functions in internal namespaces (for example factories)
2003-05-04 22:49:31 +00:00
Stanislav Malyshev
ad01495a48
Change get_class() so that it returns qualified names for namespaced
...
classes.
*HEADS UP*: get_class_name() handler interface is changed, now it should
allocate the space it returns with emalloc, and the users free it. If
anyone has problems with it or has suggestions how to do it without this -
please tell.
Also: make function_exists() understand namespaces.
2003-04-21 17:01:34 +00:00
Andrei Zmievski
e5f4c783bc
Rename zend_register_internal_class_in_ns() to a better, less filling,
...
but with the same great taste zend_register_internal_ns_class().
2003-04-08 17:40:56 +00:00
Andrei Zmievski
81482833b5
Introduce ZEND_ME() and ZEND_METHOD() macros. Use these for declaring
...
class methods to avoid name collisions.
2003-04-04 15:38:20 +00:00
Stanislav Malyshev
6ed305945d
Fix namespace issues
2003-04-04 12:25:47 +00:00
Andrei Zmievski
3d62a3491e
- Add zend_register_internal_namespace() API function.
...
- Add zend_register_internal_class_in_ns() API function.
2003-04-02 20:27:44 +00:00
Sebastian Bergmann
3fc852824f
Eliminate TSRMLS_FETCH() calls in destroy_op_array() and zend_get_class_entry().
2003-03-26 07:44:11 +00:00
Harald Radi
a700180f5d
commiting zend_disable_class patch for George:
...
disabled classes will be replaced by dummy classes
that print a warning upon instanciation
2003-03-03 01:22:43 +00:00
Ilia Alshanetsky
a2bd043e7b
Removed zend_get_module(), this function is not used by anything and more
...
importantly. it does not work. It tries to find data based on numeric keys
in hash table using string keys.
2003-02-12 16:50:51 +00:00
Georg Richter
325f9edb07
fixed zend_parse_method_param
2003-02-08 20:54:02 +00:00
Sebastian Bergmann
0026239c6a
Build fix.
2003-02-03 09:42:53 +00:00
Harald Radi
c4528f82a0
extend the parameter parsing API by two functions
...
for parsing method parameters with automatic
detection if the function was called as such or as
a class method (with a valid this ptr).
if called as a function the first parameter has to be
the object it is operating on, if called as a method
this is used.
#not yet testet, only commiting so that georg can
#continue working on ext/mysqli
2003-02-02 23:30:14 +00:00
foobar
333406bdc2
- Added some missing CVS $Id$ tags, headers and footers.
2003-02-01 01:49:15 +00:00
Stanislav Malyshev
eccc536883
Make add_property_ functions work via write_property handler
2003-01-14 12:15:09 +00:00
Stanislav Malyshev
2ae8d124ce
Remove handle_property from here too
2003-01-12 17:22:35 +00:00
Zeev Suraski
ace55f3251
Unify and make it easy to add code into the broken-string error handler
2003-01-09 15:32:22 +00:00
Sebastian Bergmann
2c5d4b8c23
Bump year.
2002-12-31 15:59:15 +00:00
Andi Gutmans
e8214a3384
- Commit Marcus' cleanup of abstract and static inheritance and improve
...
- error messages
2002-11-23 20:44:12 +00:00
Andrei Zmievski
a35c61af3c
MFZE1
2002-09-16 01:36:48 +00:00
Harald Radi
3738a6edd0
only check for an available class entry instead of
...
the std_object_handlers on some places
#some linuxtag work
2002-06-09 14:20:37 +00:00