Commit Graph

537 Commits

Author SHA1 Message Date
Zeev Suraski
938c0fbc19 Initial support for overloading of array syntax for objects (very initial) 2003-07-07 09:00:36 +00:00
Stanislav Malyshev
8f0234160a enable Classname() constructor to be called via parent::__constructor() 2003-07-03 12:03:11 +00:00
Zeev Suraski
eb224d4a5f Throughly fix scoping change. Fixes, among other things, bug #24403 2003-07-02 17:48:18 +00:00
Zeev Suraski
d245c52e0c Fix for bug #22367.
Heads up - this will break syntactical compatiblity, return($foo) will
not work with functions that return references - return $foo should be used
instead.  It never worked well before, and caused all sorts of odd bugs.
It *might* be possible to support this specifically, albeit unlikely
2003-07-02 15:06:10 +00:00
Marcus Boerger
40dd3f4f88 __clone might not be defined 2003-07-01 21:30:21 +00:00
Marcus Boerger
a04cba504f Fix __clone visibility 2003-07-01 20:02:27 +00:00
Andi Gutmans
288dacca0c - ZE coding style requires if ( instead of if( 2003-06-30 20:22:35 +00:00
Zeev Suraski
53acb1814e Semantically it's a refcount increase, not a lock... 2003-06-30 13:51:48 +00:00
Zeev Suraski
6f9d0da2e5 Fix 'global' implementation (fixes, at least, bug #24396 2003-06-30 13:47:12 +00:00
Zeev Suraski
bc4c7c6a6d Fix crash :) 2003-06-23 22:14:38 +00:00
Stanislav Malyshev
c3fb1eac15 FIx leak 2003-06-23 14:48:59 +00:00
Zeev Suraski
cbec89a358 Fix complex expressions for class names in NEW 2003-06-22 10:50:43 +00:00
Stanislav Malyshev
b48a86581a no need to init zval - assignment will init 2003-06-16 15:43:40 +00:00
Stanislav Malyshev
f205abb3f8 Fix bug #22592 - cascading assignments to string offsets 2003-06-16 15:41:02 +00:00
James Cox
f68c7ff249 updating license information in the headers. 2003-06-10 20:04:29 +00:00
Stanislav Malyshev
c68924dcbc remove NS leftover 2003-06-09 14:05:12 +00:00
Zeev Suraski
910dff4c2b Fix indirect reference calls to bogus function names 2003-06-09 07:39:55 +00:00
Zeev Suraski
faefdb7bdd Fix handling of object property assignments in switch expressions
(bug #23925)
2003-06-08 18:52:53 +00:00
Stanislav Malyshev
f7f5a5ea6b MEGA-patch: namespaces are R.I.P. 2003-06-02 12:13:11 +00:00
Sterling Hughes
5bb29cfaeb revert the function call caching patch until a new solution is decided
upon.
2003-05-31 18:31:28 +00:00
Stanislav Malyshev
95a3fd7b3c fix crash on exceptions when return value of the inside function is used 2003-05-30 10:05:29 +00:00
Sterling Hughes
88b2f89eee Cache function call lookups with loops (store in a temporary variable on the
result opline).
Assuming lazy concensus on message that GeorgeS sent to the list last week
2003-05-28 20:42:40 +00:00
Sterling Hughes
ae9106521a move HANDLE_NUMERIC() from the hash table implementation upstream to the
places that actually need to use it.
2003-05-23 15:11:15 +00:00
Marcus Boerger
475594c861 No need to copy here unless implicit_clone is active (noticed by rob) 2003-05-22 19:13:20 +00:00
Marcus Boerger
7af8eadd57 Make zend_str_tolower_copy() a copy function (like stccpy).
Supply a dup version (like estrdup).
Fix tolower() handling.
# Havin copy and dup allows to use the faster version even with
# memory not allocated by emalloc.
2003-05-21 21:59:40 +00:00
Sterling Hughes
b5ca4de525 Bottom drawer optimization to avoid this comparison, but this OP is executed
quite often (all of the fetch_* ops)
2003-05-21 11:48:55 +00:00
Marcus Boerger
851bd22f82 No need to copy the zval unless __clone() is called 2003-05-20 20:20:57 +00:00
Sterling Hughes
54764e9848 use the new zend_str_tolower_copy() function 2003-05-20 18:44:24 +00:00
Marcus Boerger
37a88305e6 Fix exception memleak 2003-05-19 20:40:56 +00:00
Stanislav Malyshev
462eff3497 fix __clone 2003-05-19 17:12:56 +00:00
Marcus Boerger
fcf92e7e17 Modify the abstract error message so that it shows up to three methods not implemented.
# The solution is generic so that we could change the number of methods shown. But the
#problem is that error message here have a maximum length of 1024 chars.
2003-05-04 19:24:24 +00:00
Marcus Boerger
38da5d0124 Fix warnings 2003-05-04 19:11:48 +00:00
Stanislav Malyshev
c5b1314e05 make import * fail if such classes or functions already there 2003-04-21 12:14:12 +00:00
Stanislav Malyshev
800de8acb0 allow class_exists() to work with namespaces too.
add CLASS_IS_NAMESPACE macro
2003-04-02 15:28:31 +00:00
Andrei Zmievski
1ad9bd68ff Stas's patch on zend_execute.c (1.448 -> 1.449) resulted in a bug where
the namespaced member accesses didn't work. This should hopefully
correct it.
2003-04-01 21:02:02 +00:00
Andrei Zmievski
62f9eb8006 Split ZEND_NAMESPACE into user and internal namespaces. Hope this is
okay with engine folks.
2003-04-01 19:37:04 +00:00
Sebastian Bergmann
8c06829b11 ZTS fix. 2003-03-30 13:40:40 +00:00
Stanislav Malyshev
bd4cdab9cf Fix namespace switch 2003-03-30 12:39:49 +00:00
Stanislav Malyshev
1972a656e7 fix fetch_class buglet 2003-03-27 17:57:47 +00:00
Stanislav Malyshev
43e87093c1 Un-nest namespaces - now namespace X { namespace Y {} } is a parse error
Also refine namespaced includes
2003-03-26 20:42:23 +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
Stanislav Malyshev
268a14e049 Fix {include|require}_once error message - if open
fails, don't use tream, use original name.
2003-03-24 11:54:42 +00:00
Zeev Suraski
d405373270 Fix handling of ::func() 2003-03-11 23:19:45 +00:00
foobar
66052056c7 Better fix for the memleaks (bug 19943) by Moriyoshi 2003-03-07 00:28:25 +00:00
Zeev Suraski
805f98065d Fix warnings 2003-03-06 23:45:50 +00:00
Zeev Suraski
ce4690685d Fix error message 2003-03-06 23:09:57 +00:00
Zeev Suraski
0338111950 Require abstract classes to be explicitly declared 'abstract', in order to
avoid making developers traverse the entire class/interface hierarchy
before they can figure out whether a class is instantiable
(ok, so it makes sense :)
2003-03-06 22:53:23 +00:00
foobar
4a8abb2f3d Fixed bug #19943 (the memleaks) 2003-03-06 16:27:05 +00:00
Zeev Suraski
44347cf64b Change opcode name 2003-03-06 14:42:36 +00:00
Zeev Suraski
ff76511a08 Add class type hints 2003-03-06 14:31:17 +00:00
Zeev Suraski
6ad2420d2d Implement $obj::static_func() 2003-03-05 13:25:33 +00:00
Zeev Suraski
26dd8492ed Add support for interfaces 2003-03-05 11:14:44 +00:00
Stanislav Malyshev
e645f20d07 Allow namespaces to have a number of parts. I.e., now you can do:
namespace foo {
	function abc() {}
}
...
namespace foo {
	functio def() {}
}
2003-02-20 19:01:53 +00:00
Zeev Suraski
955636af69 Avoid using a C++ reserved word 2003-02-18 17:18:28 +00:00
Wez Furlong
e52aac940f Implement simple stream support in the ZE scanners. 2003-02-18 09:37:54 +00:00
Zeev Suraski
d22cc2f329 Improve handling of static member variables 2003-02-17 14:06:39 +00:00
Zeev Suraski
ac0f7d9ed0 Fix complex cases of self-assignments (bugs #21600, #22231) 2003-02-16 19:18:23 +00:00
Zeev Suraski
f079bb65ff Make EG(This) and EG(scope) available to internal methods 2003-02-16 19:10:27 +00:00
Zeev Suraski
004947221e Revert patches - they weren't ready yet! 2003-02-16 18:34:48 +00:00
Georg Richter
60d1b378ed fixed compiler warning 2003-02-16 18:04:29 +00:00
Georg Richter
c08bfd2e3f tested patch from Zeev (fixes oo-bug in ext/mysqli) 2003-02-16 17:47:23 +00:00
Sebastian Bergmann
6d300baf84 ZTS fixes 2003-02-16 11:34:49 +00:00
Stanislav Malyshev
a4c3b2ce80 Namespace patch. Big changes:
1. Nested classes are gone.
2. New syntax for namespaces:
namespace foo {
	class X { ... }
	function bar { ... }
	var x = 1;
	const ZZ = 2;
}
3. Namespaced symbol access: $x = new foo::X; - etc.
For now, namespaces are case insensitive, just like classes.
Also, there can be no global class and namespace with the same name
(to avoid ambiguities in :: resolution).
2003-02-16 11:12:43 +00:00
Zeev Suraski
778ce2495d whitespace 2003-02-10 11:49:21 +00:00
Zeev Suraski
dbb73d8f1e Add ability to reference self:: and parent:: in constant initializers
(bug #21849)
2003-02-10 09:45:27 +00:00
Zeev Suraski
edc8e67e3b Remove redundant code 2003-02-10 08:32:44 +00:00
Zeev Suraski
55a66b1cb2 Fix the array() problem (and probably some other problems too) 2003-02-09 17:30:50 +00:00
Zeev Suraski
f660d28143 - read_property cleanup
- Implement unset/isset/empty for PPP
2003-02-05 14:27:30 +00:00
Zeev Suraski
17439aa9c4 Rework static class properties - now supports access restrictions 2003-02-05 13:35:52 +00:00
Zeev Suraski
61bd944b32 Core rearrangements - move Zend Objects specific code to their
specific implementation file
2003-02-02 16:17:25 +00:00
foobar
333406bdc2 - Added some missing CVS $Id$ tags, headers and footers. 2003-02-01 01:49:15 +00:00
Zeev Suraski
4b97a8dffd Code rearrangements 2003-01-29 15:02:57 +00:00
Zeev Suraski
8f52bf6835 Fix assignments to $this.
Fixes the 'make install' problem reported on php-dev
2003-01-29 08:55:12 +00:00
Zeev Suraski
6155a1fa24 Allow methods in parent classes to call protected methods in derived
classes
2003-01-28 09:44:18 +00:00
Stanislav Malyshev
3a4ace13b4 Replace MAKE_VAR opcode with special 'data' opcode
This opcode is not executeable but only holds data for opcodes
that need more than two arguments (presently only ASSIGN_OBJ and the ilk but
in the future also ASSIGN_DIM)
2003-01-27 15:13:01 +00:00
Zeev Suraski
76c93412d3 Let the scope propagate to internal functions 2003-01-23 16:40:30 +00:00
Ilia Alshanetsky
72cd67b3ca Fixed bug #21814 (Allow booleans to be used as array keys). 2003-01-22 14:48:30 +00:00
Ilia Alshanetsky
12d2b01a25 Fixed bug #20933 (isset/empty didn't work when used on string offsets). 2003-01-16 00:44:17 +00:00
Andi Gutmans
c073b76aac - Change "is" to "instanceof" as it explains better what the operator means.
- "is_a" was also appropriate but ugly.
2003-01-14 21:29:23 +00:00
Zeev Suraski
424e98f4e2 Implemented compatibility mode
To enable - zend2.implicit_clone = on in php.ini or using ini_set()
2003-01-12 12:39:06 +00:00
Andi Gutmans
76c663b321 - Fix typo and whitespace 2003-01-11 17:04:16 +00:00
Derick Rethans
2c44fab3a0 - Ported the zend_execute_internal hook to ZendEngine2. 2003-01-11 16:12:44 +00:00
Zeev Suraski
77208ec4d6 Fix incorrect linkage of access-levels, when using private methods 2003-01-02 13:58:08 +00:00
Sebastian Bergmann
2c5d4b8c23 Bump year. 2002-12-31 15:59:15 +00:00
Zeev Suraski
ce69b6f6ee Support private/protected constructors 2002-12-07 21:37:09 +00:00
Zeev Suraski
c087d9e9e4 Fix error messages 2002-12-07 15:53:37 +00:00
Zeev Suraski
e062dffe6c - Implement public/protected/private methods.
- Prevent instantiation of classes with abstract methods.
Based in part on Marcus's patch.
2002-12-06 17:09:44 +00:00
Andi Gutmans
671fff2fde h WHitespace 2002-11-30 11:20:25 +00:00
Andi Gutmans
6aa90a75bd - FN_IS_STATIC -> FN_STATIC 2002-11-24 20:32:49 +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
Sebastian Bergmann
ba1f645030 Show class name as well. Patch by Marcus Börger. 2002-11-22 06:19:04 +00:00
Sebastian Bergmann
da0e29e92f Show the name of the abstract method in the error. 2002-11-21 14:20:25 +00:00
Andi Gutmans
227f7838d6 - Fix build (thanks Marcus)
- Implement abstract methods, syntax:
-    abstract function foo($vars);
- I don't see any reason why modifiers such as static/public need to be
- used with abstract. PHP is weakly typed and there would be no meaning to
- this anyway. People who want a strictly typed compiled language are
- looking in the wrong place.
2002-11-20 18:00:23 +00:00
Zeev Suraski
4be862b02c MFZE1 - error_reporting fix 2002-11-19 17:51:30 +00:00
Stanislav Malyshev
29695934ed fix the leak 2002-11-17 17:57:57 +00:00
Stanislav Malyshev
3944ce41c3 semi-fix string offsets crash - now it doesn't crash, but still leaks 2002-11-13 15:13:24 +00:00
Sebastian Bergmann
155c453138 Fugbix typo. 2002-11-11 18:27:32 +00:00
Sebastian Bergmann
bab84eab34 Fix ZTS build. 2002-11-06 18:51:44 +00:00
Stanislav Malyshev
41bd9b3746 fix zend_assign_to_object_op 2002-11-06 15:11:45 +00:00
Andi Gutmans
c497868005 - Add support for static methods. Basically methods which are defined as
- static don't have $this. That's the whole difference.
2002-11-05 19:37:31 +00:00