-- Hector Virgen <[email protected]> wrote
(on Monday, 05 April 2010, 04:27 PM -0700):
> This sounds like a really good idea! But I'm not too sure about the namespace
> "Encode". Do you think there might be more opportunities for two-way
> transformation besides just encoding? I'm thinking gzip/deflate, encrypt/
> decrypt, etc.

Please don't forget that We _do_ already have Filters for encryption and
compression, as well as Zend_Crypt; let's not re-invent the wheels we've
already built. :)

Also, based on the description here, I would argue that the primary
functionality already exists and can be accomplished in Zend_Filter. The
only areas I see as being potenentially new would be URL and Base64
encoding - and these could be added to Zend_Filter easily.

As an example:

    // Encryption
    $filter = new Zend_Filter();
    $filter->addFilter(new Zend_Filter_Encrypt(array('adapter' => 'base64')))
           ->addFilter(new Zend_Filter_Encrypt(array('adapter' => 
'urlencode')));
    $encrypted = $filter->filter($someValue);

    // Decryption
    $filter = new Zend_Filter();
    $filter->addFilter(new Zend_Filter_Decrypt(array('adapter' => 'urlencode')))
           ->addFilter(new Zend_Filter_Decrypt(array('adapter' => 'base64')));
    $decrypted = $filter->filter($encrypted);

The API is slightly different than what is presented here, but the
results would be the same. 

> On Fri, Apr 2, 2010 at 2:17 PM, OnyxRaven <[email protected]> wrote:
> 
> 
>     I've been doing some work with some of the symmetric Filters - especially
>     encryption and urlencoding.  What I've come up with is a more 'formal'
>     class
>     which encompasses and encoder and a decoder.
> 
>     The idea is that the same Zend_Encoder based class should be just an
>     identity to the value passed in.
> 
>     (given scalar $x, $params to Crypt;)
>     $enc = new Zend_Encoder_Crypt($params);
>     $y1 = $enc->encode($x);
>     $y2 = $enc->decode($y1);
>     assert($x === $y);
> 
>     An Encoder could easily be just a composition of Filter objects.
> 
>     Encoder chaining would run encode() in the order specified in the chain,
>     but
>     decode() would run in reverse order.
> 
>     $enc->addEncoder(Zend_Encoder_Base64)
>     $enc->addEncoder(Zend_Encoder_UrlEncode);
>     $enc->encode(); // runs Base64->encode(); UrlEncode->encode();
>     $enc->decode(); // runs UrlEncode->decode(); Base64->decode();
> 
>     Is this a valuable class?  If so, I'll happily put together the proposal
>     and
>     start up some basic implementations.
>     --
>     View this message in context: http://n4.nabble.com/
>     idea-Zend-Encoder-tp1749646p1749646.html
>     Sent from the Zend Framework mailing list archive at Nabble.com.
> 
> 

-- 
Matthew Weier O'Phinney
Project Lead            | [email protected]
Zend Framework          | http://framework.zend.com/
PGP key: http://framework.zend.com/zf-matthew-pgp-key.asc

Reply via email to