Hi,

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.


Regards,
   
--
Jimmy
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Your mind is like parachute. It works best when it is open.


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

Reply via email to