ID: 19628
Updated by: [EMAIL PROTECTED]
Reported By: [EMAIL PROTECTED]
Status: Open
Bug Type: WDDX related
Operating System: All
PHP Version: 4.2.0
-Assigned To:
+Assigned To: jan
New Comment:
assign
Previous Comments:
------------------------------------------------------------------------
[2002-09-27 01:15:30] [EMAIL PROTECTED]
I am using PHP's WDDX and find it very useful,
but that's only if I use it to exchange data
between PHP program. Once I have to exchange
the data with other languange I begin to face
problem after problem, mostly because of the
way PHP's WDDX interpret the variable type.
The solution for this is, instead of
auto-detecting the type of a var, PHP's WDDX
should allow the user to explicitly specify
the type they want the vars to be encoded as.
For example:
$string = "1";
wddx_serialize($string, WDDX_INTEGER);
// var $string will be encoded as integer,
// instead of string
$file_name = "contain some unicode char";
wddx_serialize($file_name, WDDX_BINARY);
// var $file_name will be encoded
// as binary, instead of string
Two good reasons why this should be implemented:
1. The main purpose of WDDX is to exchange data
between diff lang, and auto-detecting var type
will break this purpose. Moreover, the
type-juggling in PHP will make the case worst.
For example, consider these two data:
array ("2" => "Two", "4" => "Four", "5" => "Five");
array ("0" => "Zero", "1" => "One", "2" => "Two");
The first one will be interpreted by WDDX as hash
(assoc array). But the second one, where the key
happen to be a sequence starting from 0, will be
interpreted as normal array, not hash.
2. If users can specify the type of a variable,
then PHP's WDDX can support all type which
is defined in WDDX standard.
For example binary type. Currently there's no way
to create a WDDX packet with binary type, because
PHP don't have binary type variable. There's a
workaround to manually base64 the var, but this
will require a change at the other end to handle
this workaround too, which in some cases is
not possible.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=19628&edit=1