Re: RFC: Custom Factories (SPL)

From: Date: Wed, 18 Nov 2009 17:41:28 +0000
Subject: Re: RFC: Custom Factories (SPL)
References: 1 2 3 4  Groups: php.internals 
Request: Send a blank email to internals+get-46087@lists.php.net to get a copy of this message
2009/11/18 Mathieu Suen <mathieu.suen@easyflirt.com> > Etienne Kneuss a écrit : > > Hello, >> >> On Wed, Nov 18, 2009 at 5:54 PM, Mathieu Suen <mathieu.suen@easyflirt.com >> >wrote: >> >> Robert Lemke a écrit : >>> >>> Hi folks, >>> >>>> after discussing the idea with various PHP developers I now felt safe >>>> enough that it's not a completely stupid idea to post an RFC for it. The >>>> idea is to add support the registration of custom factories which are >>>> responsible for instantiating certain classes. >>>> >>>> Here is the first draft of my RFC: >>>> http://wiki.php.net/rfc/customfactories >>>> >>>> I suggest that we first discuss the implications and usefulness of this >>>> feature. In a second step I'd need to find some skilled internals wizard >>>> who >>>> can implement it, because not being a C developer myself, all I can >>>> offer is >>>> making suggestions and fine coffee. >>>> >>>> Looking forward to hearing your comments! >>>> Robert >>>> >>>> >>>> An other way maybe to allow this: >>> >>> $email = new $emailClassName(); >>> >>> >>> >>> This is already allowed. >> >> Best, >> >> > > Right!! > I get confused with: > $classNamme::getInstance(); > > So you can easily inject dependency: > > class Foo { > > protected $emailer; > > public function __construct($emailClass) { > $this->emailer= $emailClass; > } > > public function bar() { > // $email = new $this->emailer(); Of course not allowed > $emailer = $this->emailer; > $email = $emailer(); > // ... > > } > } > > -- Mathieu Suen > Well, $email = new $this->emailer(); it's allowed too, and behaves as expected since FOO::emailer it's a string. Reagards, Eloy Bote.

« previous php.internals (#46087) next »