> -----Original Message-----
> From: Johannes Schlüter [mailto:johan...@schlueters.de] 
> Sent: 13 May 2010 20:47
> To: Jared Williams
> Cc: 'Pierre Joye'; 'Stanislav Malyshev'; 'Sara Golemon'; 'PHP 
> Internals'
> Subject: RE: [PHP-DEV] Re: [PHP-CVS] svn: /php/php-src/trunk/ 
> NEWS ext/json/json.c ext/json/php_json.h
ext/json/tests/serialize.phpt
> 
> On Thu, 2010-05-13 at 20:27 +0100, Jared Williams wrote:
> > Hi,
> >     Keep thinking with what is in php.next that interfaces 
> seem overkill?
> > 
> > Doesn't
> > 
> > trait JSON
> > {
> >     function toJSONString()
> >     {
> >             return json_encode(get_object_vars($this));
> >     }
> > }
> 
> > class A
> > {
> >     use JSON;
> > 
> >     public $a = 1;
> >     protected $b = 2;
> >     private $c = 3;
> > }
> 
> No. The goal is to allow json_encode($foo); to do what makes 
> sense in the case. You might re-use the implementation by 
> implementing it using traits, but tha's a different problem 
> than what this interface solves.
> 
> johannes
> 

Still not seeing the point of the interface.

<?php

        trait Json
        {
                function toJSONString()
                {
                        return json_encode($this->jsonSerialize());
                }

                protected function jsonSerialize()
                {
                        return get_object_vars($this);
                }
        }

        class A
        {
                use Json;

                public $a = 1;
                protected $b = 2;
                private $c = 3;
        }

        class B
        {
                use Json;

                public $a = 1;
                protected $b = 2;
                private $c = 3;

                protected function jsonSerialize()
                {
                        return array('a' => $this->a, 'd' => 4);
                }
        }

        $a = new A();
        echo $a->toJSONString(), "\n";
        $b = new B();
        echo $b->toJSONString(), "\n"; 

Jared


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

Reply via email to