Re: Keyword Constructor

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 2 August 2011 06:28, Ren <lobbyjones@xxxxxxxxx> wrote:
> For a long time I wanted keyword parameters in PHP.  But thanks to
> newer features like traits and reflection classes I have come up with
> something that looks pretty close.
>
>    trait KeywordConstructor {
>        public function __construct($members) {
>            $class = new ReflectionClass($this);
>            $properties = $class->getProperties();
>
>            foreach ($properties as $p) {
>                $name = $p->getName();
>
>                if (isset($members[$name])) {
>                    $this->$name = $members[$name];
>                }
>            }
>        }
>    }
>
>     class User {
>         use KeywordConstructor;
>         private $name;
>         private $age;
>     }
>
>    $lobby = new User(['name' => 'Lobby', 'age' => 36]);
>
> Right now this requires the trunk version of PHP to work.  I just
> wanted to share this in case anyone finds it interesting and/or
> useful.

I use a similar technique when I need to populate a SOAP class on the
server to coerce data from the DB into the appropriate type as defined
in the docblock of the class.






-- 
Richard Quadling
Twitter : EE : Zend : PHPDoc
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY : bit.ly/lFnVea

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




[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux