[PHP-DEV] CVS Account Request: flex

2002-10-02 Thread Lenar Lõhmus

Helping (active development) with ext/xslt extension (sablot backend).



-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, visit: http://www.php.net/unsub.php




[PHP-DEV] [PATCH] xslt sablot backend

2002-05-11 Thread Lenar Lõhmus

Hello,

Two problems with sablot support in PHP 4.1.2 (and propably later releases).
1) This patch makes xslt/sablot to work with libsablot = 0.90 and also 
makes it incompatible with earlier sablotron releases. This fix might be in 
HEAD already (at least it seems so), but please include this with next 
minor release since anything  0.90 is too damn old if we are talking about 
sablotron.

2) Added a lot of if(retval) checks to avoid segfaults when user specified 
callback doesn't exist. Right now after module issues warning it segfaults 
when trying to zval_ptr_dtor(retval) because that retval isn't actually 
allocated when specified function doesn't exist.

This patch is against 4.1.2 source.

Thanks,

Lenar


--- sablot.c.old	Sat May 11 12:10:49 2002
+++ sablot.c	Sat May 11 12:58:18 2002
 -52,15 +52,15 
 static int  scheme_close(void *, SablotHandle, int);
 
 /* Sax handler functions */
-static SAX_RETURN sax_startdoc(void *);
-static SAX_RETURN sax_startelement(void *, const char *, const char **);
-static SAX_RETURN sax_endelement(void *, const char *);
-static SAX_RETURN sax_startnamespace(void *, const char *, const char *);
-static SAX_RETURN sax_endnamespace(void *, const char *);
-static SAX_RETURN sax_comment(void *, const char *);
-static SAX_RETURN sax_pi(void *, const char *, const char *);
-static SAX_RETURN sax_characters(void *, const char *, int);
-static SAX_RETURN sax_enddoc(void *);
+static SAX_RETURN sax_startdoc(void *, SablotHandle);
+static SAX_RETURN sax_startelement(void *, SablotHandle, const char *, const char **);
+static SAX_RETURN sax_endelement(void *, SablotHandle, const char *);
+static SAX_RETURN sax_startnamespace(void *, SablotHandle, const char *, const char *);
+static SAX_RETURN sax_endnamespace(void *, SablotHandle, const char *);
+static SAX_RETURN sax_comment(void *, SablotHandle, const char *);
+static SAX_RETURN sax_pi(void *, SablotHandle, const char *, const char *);
+static SAX_RETURN sax_characters(void *, SablotHandle, const char *, int);
+static SAX_RETURN sax_enddoc(void *, SablotHandle);
 
 /* Error handlers */
 static MH_ERROR error_makecode(void *, SablotHandle, int, unsigned short, unsigned short);
 -723,12 +723,14 
 	xslt_call_function(scheme get all, XSLT_SCHEME(handle).get_all, 
 	   3, argv, retval);
 
-	/* Save the return value in the buffer (copying it) */
-	*buffer = estrndup(Z_STRVAL_P(retval), Z_STRLEN_P(retval));
-	*byte_count = Z_STRLEN_P(retval);
+	if(retval) {
+		/* Save the return value in the buffer (copying it) */
+		*buffer = estrndup(Z_STRVAL_P(retval), Z_STRLEN_P(retval));
+		*byte_count = Z_STRLEN_P(retval);
 
-	/* Free return value */
-	zval_ptr_dtor(retval);
+		/* Free return value */
+		zval_ptr_dtor(retval);
+	}
 
 	return 0;
 }
 -801,11 +803,13 
 	xslt_call_function(scheme open, XSLT_SCHEME(handle).open,
 	   3, argv, retval);
 
-	/* Return value is a resource pointer to an open file */
-	*fd = Z_LVAL_P(retval);
+	if(retval) {
+		/* Return value is a resource pointer to an open file */
+		*fd = Z_LVAL_P(retval);
 
-	/* Free it all up */
-	zval_ptr_dtor(retval);
+		/* Free it all up */
+		zval_ptr_dtor(retval);
+	}
 
 	/* return success */
 	return 0;
 -845,11 +849,13 
 	xslt_call_function(scheme get, XSLT_SCHEME(handle).get,
 	   3, argv, retval);
 	
-	/* Returns the number of bytes read */
-	*byte_count = Z_LVAL_P(retval);
+	if(retval) {
+		/* Returns the number of bytes read */
+		*byte_count = Z_LVAL_P(retval);
 
-	/* Free things up */
-	zval_ptr_dtor(retval);
+		/* Free things up */
+		zval_ptr_dtor(retval);
+	}
 
 	/* return success */
 	return 0;
 -889,11 +895,13 
 	xslt_call_function(scheme put, XSLT_SCHEME(handle).put,
 	   3, argv, retval);
 
-	/* The return value is the number of bytes written */
-	*byte_count = Z_LVAL_P(retval);
+	if(retval) {
+		/* The return value is the number of bytes written */
+		*byte_count = Z_LVAL_P(retval);
 
-	/* Free everything up */
-	zval_ptr_dtor(retval);
+		/* Free everything up */
+		zval_ptr_dtor(retval);
+	}
 
 	/* Return success */
 	return 0;
 -931,7 +939,8 
 	   2, argv, retval);
 
 	/* Free everything up */
-	zval_ptr_dtor(retval);
+	if(retval)
+		zval_ptr_dtor(retval);
 
 	/* Return success */
 	return 0;
 -940,7 +949,7 
 
 /* {{{ sax_startdoc()
Called when the document starts to be processed */
-static SAX_RETURN sax_startdoc(void *ctx)
+static SAX_RETURN sax_startdoc(void *ctx, SablotHandle proc)
 {
 	zval   *argv[1];/* Arguments to the sax start doc function */
 	zval   *retval; /* Return value from sax start doc function */
 -964,13 +973,15 
 	   1, argv, retval);
 
 	/* Cleanup */
-	zval_ptr_dtor(retval);
+	if(retval)
+		zval_ptr_dtor(retval);
 }
 /* }}} */
 
 /* {{{ sax_startelement()
Called when an element is begun to be processed */
 static SAX_RETURN sax_startelement(void *ctx

Re: [PHP-DEV] Re: PHP 5

2002-01-03 Thread Lenar Lõhmus

Joe Webster wrote:

 Example:
 
 We have 200+ radio station websites in a network. The way we store
 data
 in the database is by call letters (since some websites have more than one
 domain). So call letters (whor-fm :) ) are the key to just about
 everything we do. So, in the vhost file for apache we want to set the
 station call letters so that the letters are available to the code.
 

Maybe you should use SetEnv?

Lenar

-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Re: Bug #14658 Updated: The strtok() changes destroyed 4 years old applications!

2001-12-22 Thread Lenar Lõhmus

[EMAIL PROTECTED] wrote:

 ID: 14658
 Updated by: derick
 Reported By: [EMAIL PROTECTED]
 Old Status: Open
 Status: Bogus
 Bug Type: Feature/Change Request
 Operating System: Linux, Solaris, Windows
 PHP Version: 4.1.0
 New Comment:
 
 We are aware of this situation, and after some discussion on the
 mailinglist, we will not change it back. However, to read CSV files, there
 is function fgetcvs (http://www.php.net/manual/en/function.fgetcsv.php)
 which should do exactly what you want.
 
 Derick
 
 Previous Comments:
 
 
 [2001-12-22 05:46:46] [EMAIL PROTECTED]
 
 The change made in 4.1.0 to strtok() destroyed my applications from the
 past 4 years! Thats because I used strtok() to read data from CSV (comma
 separated values) files - for which it works perfektly! For CSV (not only
 separated with commans - also with | and other symbols) it is required
 that EMPTY fields will be reported as empty field!!! So the change you
 made brokes my existing applications.
 
Or one can use split() 

Lenar

 For parsing tokens as explained I understand the change - because there
 you wont need empty tokens! But for real parsing strtok is useless(!)
 because you always have more than one separator - for human language
 parsing you need space, return/line feed, full stop as well as comma,
 questionmark etc. as separators! strtok() fails here as it seems to me!!!
 
 So my suggestion ist - to restore the old behaviour for CSV parsing and
 adding a new command like strparse() that will work with a list of
 separators!!!
 
 
 Greetings
 
 Dipl.-Inform. Kai Hofmann
 
 
 
 
 
 
 Edit this bug report at http://bugs.php.net/?id=14658edit=1

-- 
Lenar Lõhmus
Vision Group

-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Re: Bug #14442 Updated: Segmentation fault when using xslt_process()

2001-12-12 Thread Lenar Lõhmus

postitatud ja meilitud

Does Apache configure say: 'Using system expat'?
If not, then install libexpat and reconfigure/compile apache.
ext/xslt will not work correctly (segfaults) when Apache is compiled
with its bundled expat-lite.

Lenar

[EMAIL PROTECTED] wrote:

 ID: 14442
 User updated by: [EMAIL PROTECTED]
 Reported By: [EMAIL PROTECTED]
 Status: Open
 Bug Type: XSLT related
 Operating System: Linux (RH 7.0)
 PHP Version: 4.1.0
 New Comment:
 
 libc version
 
 glibc-2.2-12 RPM
 libc-2.2.so
 libc.so.6
 
 Previous Comments:
 
 
 [2001-12-12 13:38:03] [EMAIL PROTECTED]
 
 Just tried compiling 4.0.6 with the same options, same crash, but
 different debug output
 
 Program received signal SIGSEGV, Segmentation fault.
 
 0x8132250 in xslt_call_function (name=0x82b1fb5 scheme get all,
 fptr=0x48544150, argc=3, argv=0xbfffdf60,
 retval=0xbfffdf5c) at xslt.c:218
 218 error = call_user_function(EG(function_table),
 (gdb) bt
 #0  0x8132250 in xslt_call_function (name=0x82b1fb5 scheme get all,
 #fptr=0x48544150, argc=3, argv=0xbfffdf60,
 retval=0xbfffdf5c) at xslt.c:218
 #1  0x81031de in scheme_getall (user_data=0x849718c, proc=0x8498b80,
 scheme=0x84958f8 ?xml version=\1.0\ encoding=\utf-8\?xsl,
 rest=0x849bfc8 /stylesheet version=\1.0\
 xmlns:xsl=\http://www.w3.org/1999/XSL/Transform\; xsl:output\tme
 thod=\html\\tindent=\yes\\tencoding=\utf-8\/\nxsl:template
 match=\/backslash\ \n  html \n head \n..., buffer=0x8495a48,
 byte_count=0xbfffe03c) at sablot.c:674
 #2  0x400b1094 in DataLine::open (this=0x8495a30, S=@0x84956c8,
 _uri=0x849c980 ?xml version=\1.0\
 encoding=\utf-8\?xsl:/stylesheet version=\1.0\
 xmlns:xsl=\http://w
 ww.w3.org/1999/XSL/Transform\
 
xsl:output\tmethod=\html\\tindent=\yes\\tencoding=\utf-8\/\nxsl:template
 m atch=\/b..., _mode=DLMODE_READ, argList_=0x8498bc0) at uri.cpp:466
 #3  0x400a1f7d in Processor::addLineParse (this=0x8498b80, S=@0x84956c8,
 #newTree=@0x8498b84,
 absolute=@0xbfffe150, isXSL=1) at guard.h:156
 #4  0x400a26e6 in Processor::readTreeFromURI (this=0x8498b80,
 #S=@0x84956c8, newTree=@0x8498b84,
 location=@0xbfffe220, base=@0xbfffe200, isXSL=1) at proc.cpp:602
 #5  0x400a0445 in Processor::open (this=0x8498b80, S=@0x84956c8,
 sheetURI=0x849ac64 ?xml version=\1.0\
 encoding=\utf-8\?xsl:stylesheet version=\1.0\ xmlns:xsl=\http:
 //www.w3.org/1999/XSL/Transform\
 
xsl:output\tmethod=\html\\tindent=\yes\\tencoding=\utf-8\/\nxsl:templat
 e match=\/ba...,
 inputURI=0x8495f8c ?xml version=\1.0\?\r\nbackslash
 xmlns:backslash=\http://slashdot.org/backslash.dtd\;
\r\n story\r\n titleFree Stripped-Down 3D Studio
Max/title\r\n urlhttp://slashdot.org/arti
 cle.pl...) at proc.cpp:276
 #6  0x400a5c2b in SablotRunProcessor (processor_=0x8498b80,
 sheetURI=0x849ac64 ?xml version=\1.0\
 encoding=\utf-8\?xsl:stylesheet version=\1.0\ xmlns:xsl=\http:
 //www.w3.org/1999/XSL/Transform\
 
xsl:output\tmethod=\html\\tindent=\yes\\tencoding=\utf-8\/\nxsl:templat
 e match=\/ba...,
 inputURI=0x8495f8c ?xml version=\1.0\?\r\nbackslash
 xmlns:backslash=\http://slashdot.org/backslash.dtd\;
\r\n story\r\n titleFree Stripped-Down 3D Studio
Max/title\r\n urlhttp://slashdot.org/arti
 cle.pl..., resultURI=0x82b1f51 arg:/_result, params=0x0, arguments=0x0)
 at sablot.cpp:407
 #7  0x8102c5e in php_if_xslt_process (ht=3, return_value=0x8495a7c,
 #this_ptr=0x0, return_value_used=0)
 at sablot.c:471
 #8  0x813867d in execute (op_array=0x8494e7c) at ./zend_execute.c:1504
 #9  0x8111c1e in zend_execute_scripts (type=8, file_count=3) at zend.c:752
 #10 0x8091167 in php_execute_script (primary_file=0xb840) at
 #main.c:1206 11 0x811d5e6 in apache_php_module_main (r=0x83ee79c,
 #display_source_mode=0) at sapi_apache.c:89 12 0x808eb88 in send_php ()
 #13 0x808ebbd in send_parsed_php ()
 #14 0x817cfb3 in ap_invoke_handler ()
 #15 0x8191197 in process_request_internal ()
 #16 0x81911f8 in ap_process_request ()
 #17 0x818865d in child_main ()
 #18 0x8188808 in make_child ()
 #19 0x818897c in startup_children ()
 #20 0x8188ff4 in standalone_main ()
 #21 0x8189847 in main ()
 #22 0x40327f31 in __libc_start_main (main=0x81894b0 main, argc=2,
 #ubp_av=0xbb14, init=0x808bfc8 _init,
 fini=0x829cff0 _fini, rtld_fini=0x4000e274 _dl_fini,
 stack_end=0xbb0c) at ../sysdeps/generic/libc-start.c:129
 
 
 
 [2001-12-11 20:57:00] [EMAIL PROTECTED]
 
 I am trying to run the XSLT example at phpbuilder using these 2 files as
 input.
 
 http://www.phpbuilder.com/columns/justin20001025.php3?page=2
 http://www.phpbuilder.com/columns/justin20001025.php3?page=3
 
 I have written my own script to process this:
 
 --
 ?php
 $pr = xslt_create();
 $xsl = fopen(test.xsl, r);
 $xml = fopen(test.xml, r);
 $xslc = fread

[PHP-DEV] Re: Bug #13896 Updated: Segmentation fault with xslt extention

2001-12-03 Thread Lenar Lõhmus

Apache is compiled with expat-lite? 
Apache must be compiled against system libexpat.

This kind of random segfaults with xslt indicate that 
apache is not compiled against system libexpat.

Lenar

[EMAIL PROTECTED] wrote:

 ID: 13896
 Updated by: mfischer
 Reported By: [EMAIL PROTECTED]
 Status: Open
 Bug Type: XSLT related
 Operating System: Linux RH 7.2
 PHP Version: 4.1.0RC1
 New Comment:
 
 s/now known/not known/
 
 Previous Comments:
 
 
 [2001-12-02 19:28:54] [EMAIL PROTECTED]
 
 s/now known/not known/
 
 
 
 [2001-12-02 19:28:27] [EMAIL PROTECTED]
 
 The following somehow works for me:
 
 ?php
 
 $xp = xslt_create();
 
 $content = xslt_process($xp, 'arg:/xmldata', '13896.xsl', NULL,
 array('xmldata' = join('', file('13896.xml'))), $HTTP_GET_VARS);
 
 xslt_free($xp);
 ?
 
 except that it bails out that the encoding is now known and the xml not
 valid. However, no crash.
 
 
 
 [2001-11-01 07:45:39] [EMAIL PROTECTED]
 
 and yet anoter bt:
 
 
 Starting program: /usr/sbin/httpd -X
 [New Thread 1024 (LWP 26820)]
  
 Program received signal SIGSEGV, Segmentation fault.
 [Switching to Thread 1024 (LWP 26820)]
 0x401bef29 in chunk_free (ar_ptr=0x40272a00, p=0x8104608) at malloc.c:3242
 3242malloc.c: No such file or directory.
 in malloc.c
 (gdb)   bt
 #0  0x401bef29 in chunk_free (ar_ptr=0x40272a00, p=0x8104608) at
 #malloc.c:3242
 #1  0x401becd4 in __libc_free (mem=0x8104610) at malloc.c:3154
 #2  0x4057f1f6 in __builtin_delete (ptr=0x8104610) from
 #/usr//lib/libstdc++-libc6.2-2.so.3
 #3  0x405fe5c7 in Expression::~Expression () from /usr//lib/libsablot.so.0
 #4  0x4063f8ee in PListExpression *::freeall () from
 #/usr//lib/libsablot.so.0
 #5  0x405fe601 in Expression::clearContent () from
 #/usr//lib/libsablot.so.0
 #6  0x405fe5a0 in Expression::~Expression () from /usr//lib/libsablot.so.0
 #7  0x406330c5 in Attribute::~Attribute () from /usr//lib/libsablot.so.0
 #8  0x40630b30 in VertexList::destructMembers () from
 #/usr//lib/libsablot.so.0
 #9  0x406319a9 in Element::~Element () from /usr//lib/libsablot.so.0
 #10 0x40648846 in XSLElement::~XSLElement () from /usr//lib/libsablot.so.0
 #11 0x40630b30 in VertexList::destructMembers () from
 #/usr//lib/libsablot.so.0 12 0x40631379 in Daddy::~Daddy () from
 #/usr//lib/libsablot.so.0 13 0x406319e4 in Element::~Element () from
 #/usr//lib/libsablot.so.0 14 0x40648846 in XSLElement::~XSLElement () from
 #/usr//lib/libsablot.so.0 15 0x40630b30 in VertexList::destructMembers ()
 #from /usr//lib/libsablot.so.0 16 0x40631379 in Daddy::~Daddy () from
 #/usr//lib/libsablot.so.0 17 0x406319e4 in Element::~Element () from
 #/usr//lib/libsablot.so.0 18 0x406315b6 in RootNode::~RootNode () from
 #/usr//lib/libsablot.so.0 19 0x40627e5c in Tree::~Tree () from
 #/usr//lib/libsablot.so.0 20 0x4061b389 in DataLineItem::~DataLineItem ()
 #from /usr//lib/libsablot.so.0 21 0x4064463b in PListDataLineItem
 #*::freerm () from /usr//lib/libsablot.so.0 22 0x4061b920 in
 #Processor::freeNonArgDatalines () from /usr//lib/libsablot.so.0 23
 #0x4061ba98 in Processor::cleanupAfterRun () from /usr//lib/libsablot.so.0
 #24 0x40621cbd in SablotRunProcessor () from /usr//lib/libsablot.so.0 25
 #0x4050c946 in zif_xslt_process (ht=6, return_value=0x8111a3c,
 #this_ptr=0x0, return_value_used=1)
 at sablot.c:512
 #26 0x4042fc81 in execute (op_array=0x80fe88c) at ./zend_execute.c:1590
 #27 0x40431e8e in execute (op_array=0x8120f6c) at ./zend_execute.c:2133
 #28 0x4044057c in zend_execute_scripts (type=8, retval=0x0, file_count=3)
 #at zend.c:814
 ---Type return to continue, or q return to quit---
 #29 0x40452712 in php_execute_script (primary_file=0xbfffef90) at
 #main.c:1310 30 0x4044d4e6 in apache_php_module_main (r=0x80f6560,
 #display_source_mode=0) at sapi_apache.c:90 31 0x4044e354 in send_php
 #(r=0x80f6560, display_source_mode=0,
 filename=0x80f81b8 /home/transalp.php/travel/long/index.php) at
 mod_php4.c:575
 #32 0x4044e3ce in send_parsed_php (r=0x80f6560) at mod_php4.c:590
 #33 0x080551bd in ap_invoke_handler () at eval.c:41
 #34 0x0806735c in ap_some_auth_required () at eval.c:41
 #35 0x080673d3 in ap_process_request () at eval.c:41
 #36 0x0805fa37 in ap_child_terminate () at eval.c:41
 #37 0x0805fbda in ap_child_terminate () at eval.c:41
 #38 0x0805fd1d in ap_child_terminate () at eval.c:41
 #39 0x0806033e in ap_child_terminate () at eval.c:41
 #40 0x08060c03 in main () at eval.c:41
 #41 0x4015a627 in __libc_start_main (main=0x8060780 main, argc=2,
 #ubp_av=0xb414,
 init=0x804fb20 _init, fini=0x8089450 _fini, rtld_fini=0x4000dcd4
 _dl_fini, stack_end=0xb40c) at
 ../sysdeps/generic/libc-start.c:129
 
 
 
 
 [2001-11-01 07:44:42] [EMAIL

[PHP-DEV] Bug #14266: serialize() doesn't work correcty

2001-11-28 Thread lenar

From: [EMAIL PROTECTED]
Operating system: Debian Linux
PHP version:  4.1.0
PHP Bug Type: Scripting Engine problem
Bug description:  serialize() doesn't work correcty

Consider following simple script. It's pretty obvious
that serialize() does not work correctly (at least not as 
expected).

?php
  $x = new stdClass();
  $x-x = $x;
  $s = serialize($x) . \n;

  echo test on original: ; // OK
  $x-a = str;
  echo $x-x-a . \n;
  $o = unserialize($s);

  echo test on unserialized object: ; // not OK
  $o-a = str;
  echo $o-x-a . \n; 
?


-- 
Edit bug report at: http://bugs.php.net/?id=14266edit=1


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Bug #14266 Updated: serialize() doesn't work correcty

2001-11-28 Thread lenar

ID: 14266
User updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Old Status: Bogus
Status: Open
Bug Type: Scripting Engine problem
Operating System: Debian Linux
Old PHP Version: 4.1.0
PHP Version: 4.2.0-dev
New Comment:

Tested this with current cvs too. No better luck.
Original and unserialized objects have different 
representation in memory.


Previous Comments:


[2001-11-28 08:38:01] [EMAIL PROTECTED]

Circualar reference here:

$x-x = $x;
  

These dont work as expected at all.

Bogus bug report as the lang isnt designed to support this.

- James



[2001-11-28 08:32:48] [EMAIL PROTECTED]

Consider following simple script. It's pretty obvious
that serialize() does not work correctly (at least not as 
expected).

?php
  $x = new stdClass();
  $x-x = $x;
  $s = serialize($x) . \n;

  echo test on original: ; // OK
  $x-a = str;
  echo $x-x-a . \n;
  $o = unserialize($s);

  echo test on unserialized object: ; // not OK
  $o-a = str;
  echo $o-x-a . \n; 
?







Edit this bug report at http://bugs.php.net/?id=14266edit=1


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Bug #14266 Updated: serialize() doesn't work correcty

2001-11-28 Thread lenar

ID: 14266
User updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Old Status: Bogus
Status: Open
Bug Type: Scripting Engine problem
Operating System: Debian Linux
PHP Version: 4.2.0-dev
New Comment:

I dont' agree. Circular refferences can happen with 
objects (using refferences). Sometimes they are 
intentional. And serialize() doesn't completely ignore 
this. Because it spits out:
O:8:stdClass:1:{s:1:x;O:8:stdClass:1:{s:1:x;R:2;}}

so it knows about circular refferences.

Now is there any reason why it doesn't generate instead 
something like this:

O:8:stdClass:1:{s:1:x;R:1;}

I would understand if it completely ignores circular 
references, but it doesn't. It just misbehaves.



Previous Comments:


[2001-11-28 08:41:04] [EMAIL PROTECTED]

Your creating a reference to itself this is not allowed.

Therefore the bug is bogus, the behaviour is undefined.

- James



[2001-11-28 08:38:38] [EMAIL PROTECTED]

Tested this with current cvs too. No better luck.
Original and unserialized objects have different 
representation in memory.




[2001-11-28 08:38:01] [EMAIL PROTECTED]

Circualar reference here:

$x-x = $x;
  

These dont work as expected at all.

Bogus bug report as the lang isnt designed to support this.

- James



[2001-11-28 08:32:48] [EMAIL PROTECTED]

Consider following simple script. It's pretty obvious
that serialize() does not work correctly (at least not as 
expected).

?php
  $x = new stdClass();
  $x-x = $x;
  $s = serialize($x) . \n;

  echo test on original: ; // OK
  $x-a = str;
  echo $x-x-a . \n;
  $o = unserialize($s);

  echo test on unserialized object: ; // not OK
  $o-a = str;
  echo $o-x-a . \n; 
?







Edit this bug report at http://bugs.php.net/?id=14266edit=1


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Bug #14266 Updated: serialize() doesn't work correcty

2001-11-28 Thread lenar

ID: 14266
User updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Bogus
Bug Type: Scripting Engine problem
Operating System: Debian Linux
PHP Version: 4.2.0-dev
New Comment:

Ok, I tested a little bit more
and found that when calling serialize() like serialize($x)
it works.
I know about leaks, but those leaks don't kill me (yet).

And btw. Circular references work as expected. There is 
nothing so undefined about them in php. They work quite 
logically.


Previous Comments:


[2001-11-28 09:01:05] [EMAIL PROTECTED]

sorry, i wanted to write:
you realy should *NOT*...



[2001-11-28 08:59:04] [EMAIL PROTECTED]

Behaviour of Circular / Selfreferencing objects is not defined. 

you could try to do a workarround 
by using defining __sleep() and __wakeup()
in your class, which are called when the object is serialized / unserialized, and 
could unset those self-references.

but you realy should do those.. if you dont destroy all of those references, you will 
get memory leaks!

regards, Peter Petermann



[2001-11-28 08:43:47] [EMAIL PROTECTED]

I dont' agree. Circular refferences can happen with 
objects (using refferences). Sometimes they are 
intentional. And serialize() doesn't completely ignore 
this. Because it spits out:
O:8:stdClass:1:{s:1:x;O:8:stdClass:1:{s:1:x;R:2;}}

so it knows about circular refferences.

Now is there any reason why it doesn't generate instead 
something like this:

O:8:stdClass:1:{s:1:x;R:1;}

I would understand if it completely ignores circular 
references, but it doesn't. It just misbehaves.





[2001-11-28 08:41:04] [EMAIL PROTECTED]

Your creating a reference to itself this is not allowed.

Therefore the bug is bogus, the behaviour is undefined.

- James



[2001-11-28 08:38:38] [EMAIL PROTECTED]

Tested this with current cvs too. No better luck.
Original and unserialized objects have different 
representation in memory.




The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/?id=14266


Edit this bug report at http://bugs.php.net/?id=14266edit=1


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DEV] Re: [PATCH] optional parameter to mysql_connect() to create truly new link

2001-11-21 Thread Lenar Lõhmus

Hi,

I think no magic needed, optional parameter is good enough solution and 
gives the control to the hands of programmer. Just  - there should be this 
flag for both: mysql_connect() and mysql_pconnect(). And I agree different 
usernames is not the right thing to suggest.

Lenar

Markus Fischer wrote:

 On Wed, Nov 21, 2001 at 12:16:51PM +0200, Lenar Lõhmus wrote :
 Markus Fischer wrote:
 
  Hi,
  
  The attached patch against current CVS adds an optional
  parameter to mysql_connect() to specify if a truly new link
  to the database should be established. The patch changes the
  prototype to:
  
  resource mysql_connect ([string hostname [, string username [,
  string password [, bool new_link );
  
  There is no BC issue. The optional parameter is ignored when
  using mysql_pconnect().
 
 I think it's not right to ignore this with mysql_pconnect().
 In this case the meaning of this flag should be: 'return existing  mysql
 resource (or create new) not yet returned by similar call during this
 request'
 
 Sure. It's just a matter of altering the logic (just a
 oneliner).
 
 The problem, with the current implementation you _can't_ work
 this around from PHP side. Only with different database users
 which is, IMHO, not the right solution. PHP traps traps you
 into this and its not hard to fix and has no BC issues at
 all.
 
 I already received mail that its stupid to add a new param
 to the Function. and that its better that PHP detects this
 problem self.
 
 I don't see such a problem with an optional parameter.
 
 And, I don't think its possible for PHP to do magic and
 detect itself what to do.
 
 I wonder what others think?
 
 
 - Markus


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DEV] php module calling php code

2001-11-20 Thread Lenar Lõhmus

Colin McDonald wrote:

 you where close:
 
 call_user_method()

Zak was right. call_user_method() is deprecated. At least it sais so when 
NOTICEs are enabled.

 
 colin
 
 Zak Greant wrote:
 
 IIAGR, you should be able to find an example in call_user_func()

-- 
Lenar Lõhmus


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Bug #14136: Segfaults when forget xslt_free()

2001-11-20 Thread lenar

From: [EMAIL PROTECTED]
Operating system: Debian/Linux
PHP version:  4.0CVS-2001-11-20
PHP Bug Type: XSLT related
Bug description:  Segfaults when forget xslt_free()

Tested this with php compiled as cgi.
Everything works ok when after doing transformation
you use xslt_free() in your script.
When you forget to do so php may segfault.

This happens when there were a scheme/sax handler defined
with object reference:
  xslt_set_sax_handlers($xslt, array(characters = 
array($this, func)));

Now when php shuts down it calls free_processor() which 
after some recursive *_ptr_dtor() and alike calls reaches
again free_processor() with same zval handle. Since 
sablotron processor is already destroyed it eventually 
comes to segfault.

This doesn't happen when ordinary function is used as 
callback handler.

Backtrace:

#0  0x in ?? ()
#1  0x400d8432 in Situation::generateMessage 
(this=0x81c4bb8, type=MT_WARN, code=W1_HLR_NOT_REGISTERED, 
arg1=@0xbfffee08,
arg2=@0xbfffedfc, theMessage=@0xbfffed70) at 
situa.cpp:267
#2  0x400d8ae2 in Situation::message (this=0x81c4bb8, 
type=MT_WARN, code=W1_HLR_NOT_REGISTERED, 
arg1=@0xbfffee08, arg2=@0xbfffedfc)
at situa.cpp:348
#3  0x400cfb63 in Processor::report (this=0x81c4c58, 
S=@0x81c4bb8, type=MT_WARN, code=W1_HLR_NOT_REGISTERED, 
arg1=@0xbfffee08,
arg2=@0xbfffedfc) at proc.cpp:991
#4  0x400ce583 in Processor::setHandler (this=0x81c4c58, 
S=@0x81c4bb8, type=HLR_MESSAGE, handler=0x0, userData=0x0) 
at proc.cpp:741
#5  0x400d1a8c in SablotUnregHandler 
(processor_=0x81c4c58, type=HLR_MESSAGE, handler=0x0, 
userData=0x0) at sablot.cpp:728
#6  0x0811adc1 in free_processor (rsrc=0x81c0a8c) at 
sablot.c:613
#7  0x080c3a2a in list_entry_destructor (ptr=0x81c0a8c) at 
zend_list.c:177
#8  0x080c128e in zend_hash_del_key_or_index 
(ht=0x818dc44, arKey=0x0, nKeyLength=0, h=1, flag=1) at 
zend_hash.c:512
#9  0x080c378b in _zend_list_delete (id=1) at 
zend_list.c:56
#10 0x080d9581 in _zval_dtor (zvalue=0x81c4574, 
__zend_filename=0x813d01c zend_execute_API.c, 
__zend_lineno=274)
at zend_variables.c:64
#11 0x080c66ab in _zval_ptr_dtor (zval_ptr=0x81c0ad8, 
__zend_filename=0x8149313 zend_variables.c, 
__zend_lineno=189)
at zend_execute_API.c:274
#12 0x080d98b4 in _zval_ptr_dtor_wrapper 
(zval_ptr=0x81c0ad8) at zend_variables.c:189
#13 0x080c13ba in zend_hash_destroy (ht=0x81c101c) at 
zend_hash.c:541
#14 0x080d9551 in _zval_dtor (zvalue=0x81c4a34, 
__zend_filename=0x813d01c zend_execute_API.c, 
__zend_lineno=274)
at zend_variables.c:57
#15 0x080c66ab in _zval_ptr_dtor (zval_ptr=0x81c0b90, 
__zend_filename=0x8149313 zend_variables.c, 
__zend_lineno=189)
at zend_execute_API.c:274
#16 0x080d98b4 in _zval_ptr_dtor_wrapper 
(zval_ptr=0x81c0b90) at zend_variables.c:189
#17 0x080c13ba in zend_hash_destroy (ht=0x81c0b24) at 
zend_hash.c:541
#18 0x080d9521 in _zval_dtor (zvalue=0x81c0c5c, 
__zend_filename=0x813d01c zend_execute_API.c, 
__zend_lineno=274)
at zend_variables.c:51
#19 0x080c66ab in _zval_ptr_dtor (zval_ptr=0x81c4b9c, 
__zend_filename=0x81672fb sablot.c, __zend_lineno=633)
at zend_execute_API.c:274
#20 0x0811b00e in free_processor (rsrc=0x81c0a8c) at 
sablot.c:633
#21 0x080c3a2a in list_entry_destructor (ptr=0x81c0a8c) at 
zend_list.c:177
#22 0x080c3c15 in zend_destroy_rsrc_list (ht=0x818dc44) at 
zend_list.c:248
#23 0x080c64a7 in shutdown_executor () at 
zend_execute_API.c:196
#24 0x080c8e36 in zend_deactivate () at zend.c:600
#25 0x080637cf in php_request_shutdown (dummy=0x0) at 
main.c:736
#26 0x0805f023 in main (argc=2, argv=0xbb34) at 
cgi_main.c:785
#27 0x401e965f in __libc_start_main () from /lib/libc.so.6

-- 
Edit bug report at: http://bugs.php.net/?id=14136edit=1


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Bug #14137 Updated: Request additional flag for mysql_connect

2001-11-20 Thread lenar

ID: 14137
User updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Open
Bug Type: Feature/Change Request
Operating System: Debian/Linux
PHP Version: 4.0CVS-2001-11-20
New Comment:

I just want to add that creating another mysql account
is not an valid option sometimes (with hosting companies 
for example). Although yes, this will solve the problem.



Previous Comments:


[2001-11-20 13:00:02] [EMAIL PROTECTED]

Marko, will you please read the bugreport with more care the next time? THis is a 
valid report, but moving it to a feature request.

Derick



[2001-11-20 12:57:59] [EMAIL PROTECTED]

Mistake, should read ...you get the old link back...



[2001-11-20 12:57:16] [EMAIL PROTECTED]

Not so fast ..

This is definitely a problem when you try to connect to MySQL twice with the same 
incredentials (host,user,pass) you don't get the old link back and thus changing the 
database on one link obviously changes it on the other too ...

Should be a Feature Request, note sure.

A workaround is to create another user.

Reopened.



[2001-11-20 12:48:50] [EMAIL PROTECTED]

Ups sorry wrong links. :)

http://www.php.net/manual/en/ref.mysql.php
http://www.php.net/manual/en/function.mysql-db-query.php

--Marco


Note: This function has been deprecated since PHP 4.0.6. Do not use this function. Use 
mysql_select_db() and mysql_query() instead. 

read the User comment's




[2001-11-20 12:34:58] [EMAIL PROTECTED]

bool mysql_select_db (string database_name, resource [link_identifier])

http://www.php.net/manual/en/function.mysql-select-db.php


--Marco


P.S. Maybe you upgrade your system or you learn to read the manual pages.



The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
http://bugs.php.net/?id=14137


Edit this bug report at http://bugs.php.net/?id=14137edit=1


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Bug #14112 Updated: sprintf_array()

2001-11-19 Thread lenar

ID: 14112
User updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Open
Bug Type: Feature/Change Request
Operating System: Linux
PHP Version: 4.1.0RC1
New Comment:

Yes something like this should work.

But it's not as fast as it could be.
And I personally like when thins are as fast
as possible.


Previous Comments:


[2001-11-19 05:53:41] [EMAIL PROTECTED]

Why not just build your own function?

function sprintf_array ($format) {
if (1 == func_get_args () ) {
return sprintf ($format);
}

$argv = func_get_args ();
return call_user_func_array ('sprintf', $argv);
}

(Not tested, but something like this should work. :)




[2001-11-19 05:46:48] [EMAIL PROTECTED]

Hi,

During development i felt great need for function
that could be named sprintf_array()

That is ordinary sprintf() which would be able
to take arguments from array:

string sprintf_array(string format, array args)

What do you think?

Lenar






Edit this bug report at http://bugs.php.net/?id=14112edit=1


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Bug #14112 Updated: sprintf_array()

2001-11-19 Thread lenar

ID: 14112
User updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Open
Bug Type: Feature/Change Request
Operating System: Linux
PHP Version: 4.1.0RC1
New Comment:

Your solution seems fine to me.
It doesn't change the functionality I requested, so no 
objections.


Previous Comments:


[2001-11-19 06:47:50] [EMAIL PROTECTED]

I would guess that implementing it as a native PHP 
function would be at least 2x as fast.

I suppose the issue now is finding out if the core PHP 
developers consider the function to have enough value to 
add it.

My personal, non-core developer, opinion is that I don't 
like the idea of adding this function.

Perhaps instead we could overload the current 
implementations of printf and sprintf so that they can 
accept a single-dimension array as the second parameter 
(and in this case, final, parameter)?




[2001-11-19 06:11:24] [EMAIL PROTECTED]

Yes something like this should work.

But it's not as fast as it could be.
And I personally like when thins are as fast
as possible.




[2001-11-19 05:53:41] [EMAIL PROTECTED]

Why not just build your own function?

function sprintf_array ($format) {
if (1 == func_get_args () ) {
return sprintf ($format);
}

$argv = func_get_args ();
return call_user_func_array ('sprintf', $argv);
}

(Not tested, but something like this should work. :)




[2001-11-19 05:46:48] [EMAIL PROTECTED]

Hi,

During development i felt great need for function
that could be named sprintf_array()

That is ordinary sprintf() which would be able
to take arguments from array:

string sprintf_array(string format, array args)

What do you think?

Lenar






Edit this bug report at http://bugs.php.net/?id=14112edit=1


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Re: Removing ext/sablot from 4.1?

2001-11-17 Thread Lenar Lõhmus

Sterling Hughes wrote:

 Hey,
 
 Just sending out a feeler message, while I still have some
 motivation to argue about the future of XSLT (ie, I have other work I
 should be doing ;) --
 
 I'd like to move ext/sablot from the standard PHP distribution, and
 update the PHP documentation to the new XSLT API for PHP 4.1 for four
 reasons:
 
 1) Its a bit confusing with two extensions doing the same thing
 2) ext/xslt has become almost stable :)  No really...  At least it is
 much more stable than ext/sablot.
 3) A bit of an encouragement for users to switch to the new xslt
 extension which is not only cleaner, but its also signifigantly
 improved with regards to features and speed. 4) 4.1 is a bit of a
 compatibility breaking release, I don't know when I'll get the chance
 again (PHP 5?)
 
 -Sterling

+2 for removing. At least some package maintainers will realize then that 
it's gone and start looking for replacement. Speaking about Debian here :)

-- 
Lenar Lõhmus


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Re: XSLT Extension and paths

2001-11-17 Thread Lenar Lõhmus

Sebastian Bergmann wrote:

 Sebastian Bergmann wrote:
 ?php
 $p = xslt_create();
 $res = xslt_process($p, 'test.xml','test.xsl');
 if(!$res) echo xslt_error($p);
 echo $res;
 xslt_free($p);
 ?

This snippet triggered some memories.
With 4.1.0rc1-cgi (maybe under apache too, haven't tested) .. if you leave 
xslt_free() out then after script has finished and php is shutting down .. 
it segfaults.

Lenar

-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




RE: [PHP-DEV] ?php= ? sytanx again

2001-11-16 Thread Lenar Lõhmus

[EMAIL PROTECTED] wrote:

 On Fri, 16 Nov 2001, Marc Boeren wrote:
 
 Let's take this one step further (into absurdity ;-) and also add

 script language=php= %var; /script
 
 Why not remove this utter crap at all? =) (I know about BC, but I really
 think these tags are stupid). Maybe something to remove (or add a warning)
 in PHP 4.2.0 ?
 
 Derick

Do not remove script language=php/script

It's very useful in some cases. For example if you transform xsl/xml into
html with embedded php to execute later. This is not utter crap.

-- 
Lenar Lõhmus
Vision Group

-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DEV] md5sum() patch

2001-11-15 Thread Lenar Lõhmus

Alessandro Astarita wrote:

 Il 17:25, giovedì 15 novembre 2001, [EMAIL PROTECTED] ha scritto:
 Then this will do the same:
 $sum = `md5sum filename`;
 
 Do I have to depends on the external executable? ...in my opinion is not
 the right way.
 

+1 to the function

-- 
Lenar Lõhmus
Vision Group

-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Re: Bug #14042 Updated: Comment inside if statement causes parse error

2001-11-14 Thread Lenar Lõhmus

 You're messing with the ASP-tags.
 The line echo ta contains % which jumps out of PHP-mode. Then, if
 EOF has been reached, the brackets haven't been closed, which results in
 that parse-error. So, edit your php.ini and disbable asp-tags or use
 width=50% (which is better anyway).
 

It's a little bit strange you can jump into php mode with '?php' and jump 
out of that mode with '%'. IMO there should be some check in place - so 
that mixing different tags is not allowed this way.

Lenar

-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DEV] Re: Bug #14036: Segfault when using multipart form data

2001-11-13 Thread Lenar Lõhmus

Rasmus Lerdorf wrote:

 Well, file uploads do work in general in PHP 4.0.6 or the whole world
 would be screaming.  So there is something specific to your test case or
 your system that is causing this.

Well I'm using 4.1.0rc1 on linux 2.4.8 (debian unstable). And there was 1 
case with file uploads not working (apache crashed). Since I didn't have 
time to test this and our customer said it's not so important to have file 
upload form, I removed related code and didn't test it more nor searched for
more info on cause.

Bud it didn't work for sure. Strange crashes (not always, let's say 1 out 
of 5 submits). I remember creating a very simple form to test it. And it 
worked 100%. So it seems the bug is dependent on how you handle that upload.

Lenar

 
 -Rasmus
 
 On Tue, 13 Nov 2001, Hans Rakers wrote:
 
 
 As i reported in my bug report, i can reproduce this problem with 4.0.6
 and current cvs.
 
 Hans Rakers
 
 At 15:18 12-11-2001 -0800, you wrote:
 This code has changed significantly in current CVS.  4.0.6 and 4.1.0RC1
 should not have the problem.
 
 -Rasmus
 
 On Tue, 13 Nov 2001, Yasuo Ohgaki wrote:
 
   [EMAIL PROTECTED] wrote:
  
From: [EMAIL PROTECTED]
Operating system: Linux 2.2.20 and 2.4.14
PHP version:  4.0CVS-2001-11-12
PHP Bug Type: Reproducible crash
Bug description:  Segfault when using multipart form data
   
When submitting a form with enctype multipart/form-data Apache
childs segfault. Weird thing is that the problem is not
reproducible when compiling PHP with debugging enabled. I have
tried PHP-4.0.6 and CVS snapshot php4-20020600.
  
  
   4.1.0RC may not have this problem. I cannot reprocude with 4.1.0.
   I need to know to the script/config to be sure, though.
  
   --
   Yasuo Ohgaki
  
  
  
  
  
  
 
 


-- 
Lenar Lõhmus
Vision Group

-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Re: [PATCH] sablotron scheme/sax handlers fix

2001-11-11 Thread Lenar Lõhmus

It seems that nobody liks handling bug reports/patches 
regarding xslt module. Nevertheless it's buggy and partly
unusable, so it would be very nice if somebody could update cvs
with this patch (maybe check before, since I'm not C programmer) 
before next release of php.

Thank you in advance,

Lenar

Lenar Lõhmus wrote:

 Hi,
 
 Since nobody responded to my bugreport
 about sax/scheme handlers not working in php
 and since i needed them in a working state
 I tried to understand the source and finally
 generated a fix.
 
 So this patch makes ext/xslt working when
 sablotron and scheme/sax handlers are used.
 
 Hope it finds it's way to cvs.
 
 Lenar Lõhmus
 [EMAIL PROTECTED]

-- 
Lenar Lõhmus
Vision Group

-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Bug #13779 Updated: Tranformations do not work

2001-10-24 Thread lenar

ID: 13779
User updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Old Status: Open
Status: Closed
Bug Type: XSLT related
Operating System: Debian
PHP Version: 4.1.0RC1
New Comment:

Ignore. Messed the order of xsl and xml parameters.

Previous Comments:


[2001-10-21 10:02:12] [EMAIL PROTECTED]

Consider following script (xslt extension loaded):

?php
  $xslt = xslt_create();

  $args = array(
/_xsl = 'xsl:stylesheet version=1.0 
xmlns:xsl=http://www.w3.org/1999/XSL/Transform;
 xsl:template match=test
  xsl:value-of select=./
 /xsl:template
/xsl:stylesheet',
/_xml = 'testTestValue/test'
  );

  $data = xslt_process($xslt, arg:/_xsl, arg:/_xml, NULL, $args);

  echo EXPECTED RESULT:\nTestValue\n;
  echo REAL RESULT:\n . $data . \n;
  xslt_free($xslt);
?

And when you run it you get:

EXPECTED RESULT:
?xml version=1.0 encoding=UTF-8?TestValue
REAL RESULT:
?xml version=1.0 encoding=UTF-8?testTestValue/test

same with sabcmd works correctly:

sabcmd 'arg:/_xsl' 'arg:/_xml' result.dat \
'/_xsl=xsl:stylesheet version=1.0 
xmlns:xsl=http://www.w3.org/1999/XSL/Transform;xsl:template 
match=testxsl:value-of select=.//xsl:template/xsl:stylesheet' \
'/_xml=testTestValue/test'






Edit this bug report at http://bugs.php.net/?id=13779edit=1


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Bug #13776: unable to compile XSLT as shared mod

2001-10-21 Thread lenar

From: [EMAIL PROTECTED]
Operating system: Debian
PHP version:  4.1.0RC1
PHP Bug Type: XSLT related
Bug description:  unable to compile XSLT as shared mod

It seems that it isn't possible
to compile php's xslt extension as shared module.

This is bad because until it is possible
distros can't package it separately.

For example right now debian comes with php4-sablot
extension which uses old ext/sablot code.

Since all new development is done with xslt sablot backend
that package is unusable.

In order to make php4-xslt package there must be way to compile it as
shared extension.

Configure script seems to understand --enable-xslt=shared
but real linking isn't done.

-- 
Edit bug report at: http://bugs.php.net/?id=13776edit=1


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Bug #13776 Updated: unable to compile XSLT as shared mod

2001-10-21 Thread lenar

ID: 13776
User updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Open
Bug Type: XSLT related
Operating System: Debian
PHP Version: 4.1.0RC1
New Comment:

It seems it works when using additionaly
--enable-shared=xslt

Previous Comments:


[2001-10-21 08:21:05] [EMAIL PROTECTED]

It seems that it isn't possible
to compile php's xslt extension as shared module.

This is bad because until it is possible
distros can't package it separately.

For example right now debian comes with php4-sablot
extension which uses old ext/sablot code.

Since all new development is done with xslt sablot backend
that package is unusable.

In order to make php4-xslt package there must be way to compile it as shared 
extension.

Configure script seems to understand --enable-xslt=shared
but real linking isn't done.






Edit this bug report at http://bugs.php.net/?id=13776edit=1


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Bug #13779: Tranformations do not work

2001-10-21 Thread lenar

From: [EMAIL PROTECTED]
Operating system: Debian
PHP version:  4.1.0RC1
PHP Bug Type: XSLT related
Bug description:  Tranformations do not work

Consider following script (xslt extension loaded):

?php
  $xslt = xslt_create();

  $args = array(
/_xsl = 'xsl:stylesheet version=1.0
xmlns:xsl=http://www.w3.org/1999/XSL/Transform;
 xsl:template match=test
  xsl:value-of select=./
 /xsl:template
/xsl:stylesheet',
/_xml = 'testTestValue/test'
  );

  $data = xslt_process($xslt, arg:/_xsl, arg:/_xml, NULL, $args);

  echo EXPECTED RESULT:\nTestValue\n;
  echo REAL RESULT:\n . $data . \n;
  xslt_free($xslt);
?

And when you run it you get:

EXPECTED RESULT:
?xml version=1.0 encoding=UTF-8?TestValue
REAL RESULT:
?xml version=1.0 encoding=UTF-8?testTestValue/test

same with sabcmd works correctly:

sabcmd 'arg:/_xsl' 'arg:/_xml' result.dat \
'/_xsl=xsl:stylesheet version=1.0
xmlns:xsl=http://www.w3.org/1999/XSL/Transform;xsl:template
match=testxsl:value-of select=.//xsl:template/xsl:stylesheet'
\
'/_xml=testTestValue/test'

-- 
Edit bug report at: http://bugs.php.net/?id=13779edit=1


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Re: Apache 2.0.18 API does not match sapi_apache2.c code

2001-10-01 Thread Lenar

Stig Venaas [EMAIL PROTECTED] wrote in message
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
 change might be for Apache 2 newer than 2.0.18, but 2.0.18 is the latest
 I can find. I think we should support the latest Apache 2 that people are

http://dev.apache.org/dist/

 able to download, which seems to be from June. Or is it possible for
 mortals to download more recent Apache somehow (CVS access?)?

 Stig



-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DEV] why does exit() print its argument?

2001-10-01 Thread Lenar

  Web scripting language, I think that the chances of people
  expecting this

 I use it as a system scripting language and vote +1 for numeric arguments
to
 work the expected way.
I want to use it as a system programming language. But fork() is missing :)

Anyway this shows we use php for many differenet applications and purposes.
That's not the reason to break BC.

Lenar



-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] apache 2 environment

2001-08-22 Thread Lenar

Hi,

Can anybody say something about progress made finding and fixing the
unfortunate problem about apache 2 and php 407-dev, where server and
environment variables are not accessible under php?

With regards,

Lenar Lohmus



-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Re: Bug #12032: PHP dumps core when using a 3x derived class from a series of included files

2001-07-11 Thread lenar

This might be realted to bug I reported about parent:: not working with 3 or more 
stage inheritance when include()s are used.
It was said by Zeev that it is now fixed in CVS (for 4.0.7 i think, it din't reach 
4.0.6 in time).

Lenar

[EMAIL PROTECTED] wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
 From: [EMAIL PROTECTED]
 Operating system: Debian/GNULinux unstable
 PHP version:  4.0.6
 PHP Bug Type: Reproducible crash
 Bug description:  PHP dumps core when using a 3x derived class from a series of 
included files
 
 see http://patrick.jordan-smith.org/junk/example.tar.gz 
 for scripts to reproduce this error. The file crashes.php 
 when loaded from the browser will crash php, the file 
 doesntcrash.php won't. It seems from looking at a 
 backtrace that php gets itself into a infinite loop. I 
 don't include a backtrace because it's 19421 entries long.
 
 This is using the php4 package from debian
 
 -- 
 Edit bug report at: http://bugs.php.net/?id=12032edit=1
 


--
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Re: Bug #12040: PHP dumps core when using a 3x derived class from a series of included files

2001-07-11 Thread lenar

in PHP 4.0.5 this resulted in engine error. Zeev said it is fixed in CVS, so right now 
I can't compile CVS to check it out, but maybe you can.
And does this crash disappears when you use explicit class names instead parent:: 
(a::, b:: ... etc)? In my case it helped.

Lenar

[EMAIL PROTECTED] wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
 From: [EMAIL PROTECTED]
 Operating system: Debian/GNULinux unstable
 PHP version:  4.0.6
 PHP Bug Type: Reproducible crash
 Bug description:  PHP dumps core when using a 3x derived class from a series of 
included files
 
 This is bug #12032 but I don't have a password to add more 
 info to it (didn't enter one, was rushed)
 
 Yes,it seems to have to do with the calling of parent
 object fuctions in files incuded from files that have been
 included. Following are 3 php files that reproduce it,you
 run the D.PHP file. If the a.php file is included in d.php
 instead of b.php, there is no problem.
  
 // -- A.PHP --
 ?
 class a
 {
   function a()
   {
 -_constructor();
   }
  
   function _constructor()
   {
   }
 }
 ?
 // -- EOF --
  
 // -- B.PHP --
 ?
 include("a.php");
  
 class b extends a
 {
   function _constructor()
   {
 parent::_constructor();
   }
 }
  
 class c extends b
 {
   function _constructor()
   {
 parent::_constructor();
   }
 }
 ?
 // -- EOF --
  
 // -- D.PHP --
 ?
 {
   function _constructor()
   {
 parent::_constructor();
   }
 }
  
 class c extends b
 {
   function _constructor()
   {
 parent::_constructor();
   }
 }
 ?
 // -- EOF --
  
 // -- D.PHP --
 ?
   include("b.php");
= new c;
 ?
 // -- EOF --
 
 
 -- 
 Edit bug report at: http://bugs.php.net/?id=12040edit=1
 


--
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DEV] Bug #11611 Updated: nl2br() outputting invalid brtags

2001-06-24 Thread Lenar Lhmus


  when the rest of your code is just generating HTML compliant output, not
  XHTML.
  
  Ok, somebody can always use something like str_replace(\n, br,
  $text) to get the old functionality.
 
 What if the rest of your code is generating XHTML?  It's better to assume
 the more strict syntax, especially considering that nobody has yet found (to
 my knowledge) a browser where br / doesn't work.
 
Yes, agree, but this change has happend not much time ago, and I think
it's one's responsibility to maintain the behavior what it used to
be. Even more if the old syntax was generating standard compliant code
(and HTML4 is a standard).  

Still, we must evolve, so a syntax like
nl2br(string text [boolean html4]) would give the most up to date
behaviour of this function, giving somebody an option to get the old
behaviour when it's really neccessary.

And ... you don't know a browser where br / dowsn't work? But there
might be one ... one's own specific implementation where creator haven't
thought up possibility that br might be br / one day. Since it is
not neccessary for HTML to recognize / in the end of single tag then we
can't really blame him.

lenar.

 Matt
 


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DEV] Bug #11611 Updated: nl2br() outputting invalid br tags

2001-06-24 Thread lenar


Derick Rethans [EMAIL PROTECTED] wrote in message 
[EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
 On Fri, 22 Jun 2001, lenar wrote:
 
  Shouldn't there be an optional flag to nl2br to change the behavior of function to 
what it used to be.
  Just there's no point in br / like tags when the rest of your code is just 
generating HTML compliant output,
  not XHTML.
 
 br / is HTML compliant too, and there is no single browser who doesn't
 get it.

But it's not the behaviour up to today of this function. And I suggested only optional 
flag for getting old behavior.
Like nl2br(string text [boolean html]).

And to avoid rest, I say it more clearly: I agree it should generate XHTML 
_by_default_.

lenar
 



--
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DEV] Internal Working -- performance question

2001-06-24 Thread lenar

I don't know if MySQL supports HEAP tables under Win32 but otherwise I suggest using 
them for IPC in your PHP applications.
We use it, and so far it has worked great for us (very good perfomance) using it 
combined with mysql_pconnect().

Lenar

James Moore [EMAIL PROTECTED] wrote in message 
000f01c0fbcb$e522a640$010a@zeus">news:000f01c0fbcb$e522a640$010a@zeus...
  a) Is there a faster way to send data between 2 processes, 
  that will work with PHP, and is supported by Windows and *nix.
 
 How about abstacting it, under Linux use shared mem (should be fastest)
 if its avalible, other wise use sockets then If that's not avalible use
 database/file version.
 
 - James
 
 
 -- 
 PHP Development Mailing List http://www.php.net/
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 To contact the list administrators, e-mail: [EMAIL PROTECTED]
 


--
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DEV] Bug #11645 Updated: tempnam( ) does not use TMP environment variable

2001-06-24 Thread lenar


[EMAIL PROTECTED] wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
 ID: 11645
 Updated by: sniper
 Reported By: [EMAIL PROTECTED]
 Old-Status: Open
 Status: Analyzed
 Old-Bug Type: Filesystem function related
 Bug Type: Documentation problem
 Operating system: 
 PHP Version: 4.0.6
 Assigned To: 
 Comments:
 
 This is documentation problem. The given path takes precedence over TMPDIR 
environment variable (not TMP environment variable as it is in docs)
This should be platform dependent. On Win32 it's usually TEMP (or TMP too with later 
wdozes) environment variable which specifies the location of directory for temporary 
files.
TMPDIR is used on linux (maybe other *nix too, don't know - propably).

This is suggestion for implementation/documentation change.

lenar.

 
 From php4/main/php_open_temporary_file.c:
 
 /* {{{ php_open_temporary_file
  *
  * Unlike tempnam(), the supplied dir argument takes precedence
  * over the TMPDIR environment variable
  * This function should do its best to return a file pointer to a newly created
  * unique file, on every platform.
  */
 
 This makes the function behave the same way on every system.
 
 
 Previous Comments:
 ---
 
 [2001-06-24 14:17:51] [EMAIL PROTECTED]
 The PHP manual states:
 
 The behaviour of the tempnam() function is system dependent. On Windows the TMP 
environment variable will override the dir parameter.
 
 However testing the following when my TMP env variable is set to WINDOWSTMP:
 
   print tempnam('/','z')
 
 the result is:
 
   C:zB312.TMP
 
 This used to work fine in PHP 4.0.4pl1.
 
 Thanks again, John
 
 
 
 
 ---
 
 
 
 ATTENTION! Do NOT reply to this email!
 To reply, use the web interface found at http://bugs.php.net/?id=11645edit=2
 
 
 -- 
 PHP Development Mailing List http://www.php.net/
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 To contact the list administrators, e-mail: [EMAIL PROTECTED]
 


--
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DEV] Bug #11611 Updated: nl2br() outputting invalid br tags

2001-06-24 Thread lenar

Uh, ok. I give up. I just wasn't able earlier to find this paragraph from spec.
Sorry if I disturbed you too much :)

lenar.

 Browsers should ignore things which they don't recognise:
 (from http://www.w3.org/TR/1999/REC-html401-19991224/html40.txt, paragraph
 7.2)
 
Note. As of the 24 December version of HTML 4.01, the HTML Working
Group commits to the following policy:
  * Any changes to future HTML 4 DTDs will not invalidate documents
that conform to the DTDs of the present specification. The HTML
Working Group reserves the right to correct known bugs.
  * Software conforming to the DTDs of the present specification may
ignore features of future HTML 4 DTDs that it does not recognize.
 
 This was also the case with earlier versions of HTML.
 
 regards,
 
 Derick Rethans



--
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DEV] Bug #11611 Updated: nl2br() outputting invalid br tags

2001-06-22 Thread lenar

Shouldn't there be an optional flag to nl2br to change the behavior of function to 
what it used to be.
Just there's no point in br / like tags when the rest of your code is just 
generating HTML compliant output,
not XHTML.

Ok, somebody can always use something like str_replace("\n", "br", $text) to get the 
old functionality.

lenar.

[EMAIL PROTECTED] wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]...
 ID: 11611
 Updated by: sniper
 Reported By: [EMAIL PROTECTED]
 Old-Status: Closed
 Status: Bogus
 Bug Type: Strings related
 Operating system: 
 PHP Version: 4.0.5
 Assigned To: 
 Comments:
 
 Could this be even more bogus? :)
 
 
 Previous Comments:
 ---
 
 [2001-06-22 04:39:51] [EMAIL PROTECTED]
 It's XHTML compliant
 
 ---
 
 [2001-06-21 22:13:10] [EMAIL PROTECTED]
 put this into a test php file:
 
 ?php
 $temp = "this isnna testn";
 printf("%s", nl2br($temp));
 ?
 
 and you should get this as output from your webserver:
 
 this isbr /
 br /
 a testbr /
 
 I have confirmed this to be also an issue in the 4.0.6 release candidates, but I do 
not know when this all of a sudden became an issue.  I'd like to know why it's 
creating br / tags instead of br tags :)
 
 ---
 
 
 
 ATTENTION! Do NOT reply to this email!
 To reply, use the web interface found at http://bugs.php.net/?id=11611edit=2
 
 
 -- 
 PHP Development Mailing List http://www.php.net/
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 To contact the list administrators, e-mail: [EMAIL PROTECTED]
 


--
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Bug #11589 Updated: classes and includes

2001-06-21 Thread lenar

ID: 11589
User Update by: [EMAIL PROTECTED]
Status: Open
Bug Type: Scripting Engine problem
Operating system: Debian/Linux
PHP Version: 4.0.5
Description: classes and includes

The bug exists in 4.0.6 RC3

Previous Comments:
---

[2001-06-20 14:59:26] [EMAIL PROTECTED]
First, my stripped down code that works:
?
class a {
function make($params) {
}
}
class b extends a {
function make() {
echo WORKS OK;
}
}
class c extends b {
function make($params) {
parent::make();
}
}
class d extends c {
function make($params) {
parent::make($params);
}
}

$d = new d();
$d-make(whatever);
?

now, when i remove the definition of class 'a' to another file and include
the file like this:

file1.php:

?
class a {
function make($params) {
}
}
?

file2.php:

?
include ./file1.php; // or require - no difference

class b extends a {
  function make() {
   echo WORKS OK;
  }
}

class c extends b {
 function make($params) { // this gets called forever  and generating
warnings
parent::make();
  }
}

class d extends c {
 function make($params) {
   parent::make($params);
  }
}

$d = new d();
$d-make(whatever);
?

then i get message 'Warning: Missing argument 1 for make()' ... the code is same ... 
but working differently. at least with my php 4.0.5. so i think this is a bug.

---


Full Bug description available at: http://bugs.php.net/?id=11589


-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DEV] 4.0.6 Packaged!

2001-06-21 Thread lenar

 I'd like to see Zeev's fix to #11590 in 4.0.6

The same to #11589 .. in my project it's very important.
Ok, it's just my project :( but when i need to hardode
class names instead of just specifinig parent:: - it make's
things more complex than they should be.

lenar.


 I just tested it, and it still segfaults.

 -Rasmus


 --
 PHP Development Mailing List http://www.php.net/
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 To contact the list administrators, e-mail: [EMAIL PROTECTED]




-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Bug #11609: documentation packaging format

2001-06-21 Thread lenar

From: [EMAIL PROTECTED]
Operating system: debian
PHP version:  4.0 Latest CVS (2001-06-21)
PHP Bug Type: Documentation problem
Bug description:  documentation packaging format

Another documentation packaging format would be nice.
I'm talking about bz2 .. it makes sense:

If you package those html files with gzip you get approx 900kb file, but packaging 
with bz2 makes archive only ~600kb in size.

Heh and i'm not evevn talking about zip format - the size coming out from that is 
awful.




-- 
Edit Bug report at: http://bugs.php.net/?id=11609edit=1



-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] parent and grandparent functions

2001-06-20 Thread Lenar Lõhmus

Hello,

Sorry to write in dev, but i consider this a weakness of php. Something
needs to be changed.
Ok, maybe thereis a solution right now existing in PHP, but i'm unaware of
it.
Skip to the problem
I have three classes:

class a {
function make() {
// some code
}
}

class b extends a {
function make() {
// some code
parent::make();
}
}

class c extends b {
function make() {
// some code
parent::make();
}
}

now the class 'c' is instantiated and the member function 'make' is called.
All works up to the point where 'b'::make calls parent::make().
It seems to call itself :(. I can understand this is logical behaviour since
it's still an instance of class c,
so parent:: is still b::, but how should I call that grandparent's make()???
This doesn't seem like a good OOP.
For example delphi's 'inherited' works relative to the class it's used in
and it is way more useful than php's parent::.

is there any elegant solution(s) to my problem?

Lenar Lõhmus





-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




Re: [PHP-DEV] parent and grandparent functions

2001-06-20 Thread Lenar Lõhmus

An update. When I hardcode the parent class name (example below) then it
works. But if I decide to change the
class inheritance hierarchy I need to manually revise all my existing
classes. So where is the flexibility?
Furthermore .. I found a note in php manual stating that in php405
get_parent_class also accepts class name string as it's
only parameter.

So when corectly passing parent class names to each make I'll be able to do
something like that:

function make($this_name) {
$parent = get_parent_class($this_name);
eval($parent::make('$parent'));
}

Unfortunately, the only thing I get form get_parent_class when calling it
with string parameter is quite empty string (and I have 4.0.5).

More. I think it would be wise to implement an class name like parent, for
example 'inherited' which calls always the real parent class
(that is the parent class of the class where such keyword is used not the
parent class of current object instance) method (or the method of
parent's parent if the method is not overriden in parent etc, generating an
error if the method is not found in entire class inheritance hierarchy)..

I hope you understood, since enhlish is not my primary language.
If you need me to elaborate a bit then ask.

Lenar

Lenar Lõhmus [EMAIL PROTECTED] wrote in message
9gpn2a$oc6$[EMAIL PROTECTED]">news:9gpn2a$oc6$[EMAIL PROTECTED]...
 Hello,

 Sorry to write in dev, but i consider this a weakness of php. Something
 needs to be changed.
 Ok, maybe thereis a solution right now existing in PHP, but i'm unaware of
 it.
 Skip to the problem
 I have three classes:

 class a {
 function make() {
 // some code
 }
 }

 class b extends a {
 function make() {
 // some code
 parent::make(); // instead write:
a::make();// hardcoded
 }
 }

 class c extends b {
 function make() {
 // some code
 parent::make(); // instead write:
b::make();//hardcoded
 }
 }

 now the class 'c' is instantiated and the member function 'make' is
called.
 All works up to the point where 'b'::make calls parent::make().
 It seems to call itself :(. I can understand this is logical behaviour
since
 it's still an instance of class c,
 so parent:: is still b::, but how should I call that grandparent's
make()???
 This doesn't seem like a good OOP.
 For example delphi's 'inherited' works relative to the class it's used in
 and it is way more useful than php's parent::.

 is there any elegant solution(s) to my problem?

 Lenar Lõhmus





 --
 PHP Development Mailing List http://www.php.net/
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 To contact the list administrators, e-mail: [EMAIL PROTECTED]




-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Re: [PHP] parent and grandparent member method calls

2001-06-20 Thread Lenar Lõhmus

yes, you were right it works (when you said it works i tested your code out
and it definetly works). but this made me more confused than i was before.
i commented in the lines in my code that earlier didn't work (replaced them
sometime with class names hard coded solution) and it still did _not_ work.
ok, made copies of files in action and started to strip them down.

First, my stripped down code that works:
?
class a {
function make($params) {
}
}
class b extends a {
function make() {
echo WORKS OK;
}
}
class c extends b {
function make($params) {
parent::make();
}
}
class d extends c {
function make($params) {
parent::make($params);
}
}

$d = new d();
$d-make(whatever);
?

now, when i remove the definition of class 'a' to another file and include
the file like this:

file1.php:

?
class a {
function make($params) {
}
}
?

file2.php:

?
include ./file1.php; // or require - no difference

class b extends a {
  function make() {
   echo WORKS OK;
  }
}

class c extends b {
 function make($params) { // this gets called forever  and generating
warnings
parent::make();
  }
}

class d extends c {
 function make($params) {
   parent::make($params);
  }
}

$d = new d();
$d-make(whatever);
?

then i get message 'Warning: Missing argument 1 for make()' ... the code is
same ... but working differently.at least with my php 4.0.5. so i think this
is a bug.

that include in our system is neccessary so to the point it works correctly,
i have to hardcode class names.

and thank you scott pointing me out (and getting me confused :) ).

lenar.

scott [gts] [EMAIL PROTECTED] wrote in message
news:[EMAIL PROTECTED]...
 it looks like your solution *is* elegant... i tried
 out your code, becuase i was astonished that such a
 simple thing allegedly wasn't working... and it
 did work.

 below is the exact code i had in my text editor,
 and it executed perfectly.
 when i called $c-make(), it printed A:: MAKE.

 ..am i misunderstanding your problem?


 ?

 class a {
 function make() {
 // some code
 print A:: MAKE;
 }
 }

 class b extends a {
 function make() {
 // some code
 parent::make();
 }
 }

 class c extends b {
 function make() {
 // some code
 parent::make();
 }
 }



 $c = new c();
 $c-make();

 ?


  -Original Message-
  From: Lenar Lõhmus [mailto:[EMAIL PROTECTED]]
  Sent: 20 June 2001 09:01
  To: [EMAIL PROTECTED]
  Subject: [PHP] parent and grandparent member functions
 
 
  Hello,
 
  I hit a wall. No offense, but this OO stuff in PHP is somehat weird, but
  skip to the problem.
  I have for example three classes:
 
  class a {
  function make() {
  // some code
  }
  }
 
  class b extends a {
  function make() {
  // some code
  parent::make();
  }
  }
 
  class c extends b {
  function make() {
  // some code
  parent::make();
  }
  }
 
  now the class 'c' is instantiated and the member function 'make' is
called.
  All works up to the point where 'b'::make calls parent::make().
  It seems to call itself :(. I can understand this is logical behaviour
since
  it's still an instance of class c,
  so parent:: is still b::, but how should I call that grandparent's
make()???
  This doesn't seem like a good OOP.
  For example delphi's 'inherited' works relative to the class it's used
in
  and it is way more useful than php's way.
 
  is there any elegant soultion(s) to my problem?
 
  Lenar Lõhmus


 --
 PHP General Mailing List (http://www.php.net/)
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED]
 To contact the list administrators, e-mail: [EMAIL PROTECTED]




-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]




[PHP-DEV] Bug #11589: classes and includes

2001-06-20 Thread lenar

From: [EMAIL PROTECTED]
Operating system: Debian/Linux
PHP version:  4.0.5
PHP Bug Type: Scripting Engine problem
Bug description:  classes and includes

First, my stripped down code that works:
?
class a {
function make($params) {
}
}
class b extends a {
function make() {
echo WORKS OK;
}
}
class c extends b {
function make($params) {
parent::make();
}
}
class d extends c {
function make($params) {
parent::make($params);
}
}

$d = new d();
$d-make(whatever);
?

now, when i remove the definition of class 'a' to another file and include
the file like this:

file1.php:

?
class a {
function make($params) {
}
}
?

file2.php:

?
include ./file1.php; // or require - no difference

class b extends a {
  function make() {
   echo WORKS OK;
  }
}

class c extends b {
 function make($params) { // this gets called forever  and generating
warnings
parent::make();
  }
}

class d extends c {
 function make($params) {
   parent::make($params);
  }
}

$d = new d();
$d-make(whatever);
?

then i get message 'Warning: Missing argument 1 for make()' ... the code is same ... 
but working differently. at least with my php 4.0.5. so i think this is a bug.


-- 
Edit Bug report at: http://bugs.php.net/?id=11589edit=1



-- 
PHP Development Mailing List http://www.php.net/
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]