Yeah, correct, there'll be a new class "SingletonModel". If you want to create a new model that works as a singleton, you just do
class MyCustomModel extends SingletonModel instead of class MyCustomModel extends Model - David > -----Original Message----- > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On > Behalf Of graeme > Sent: Monday, June 27, 2005 4:52 AM > To: Agavi Development > Subject: Re: [agavi-dev] Singleton Models > > By option #1 I understand that you mean > SingletonModel extends Model > > that approach gets my vote (every time): > To me it is the way we should use OOP extending the functionality > through new classes. > > By the way I'm working on a script that will create xmi from the > framework so that we can have some UML models of the framework. > Hopefully I'll have this thrashed our by the end of the week. > > graeme. > > > David Zülke wrote: > > >Cheers folks, > > > >Agavi's Model implementation currently lacks support for Singletons. From > >what I can see, there are three ways to implement that: > > > >1) if you want your Model to be Singleton, extend SingletonModel instead > of > >Model. The Controller will automagically call getInstance() when he > stumbles > >over a class that is a singleton. This method is guaranteed to work, as I > >already implemented it > > > >2) have a separate method, Comtroller::get(Global)SingletonModel(). IMO, > >this sucks big time > > > >3) change Controller::get(Global)Model() to accept a third parameter > which > >defines the method that will be used to fetch an instance (i.e. > $singleton = > >Controller::getGlobalModel('whatever', 'getInstance);). This obviously > >sucks, too, as we'll be running into trouble when we add more parameters > to > >those methods (for example when passing parameters, this is currently in > >discussion IIRC). > > > >4) do #3, but use an array as the only parameter instead: $singleton = > >Controller::getModel('blahmodule', array('ModelName', 'getInstance')); - > >sucks as well if you ask me > > > >I opt for method #1. Will create a branch soon where this is implemented, > >but I wanted to chime in and ask for opinions before I go ahead and start > >working. So... objections, anyone? > > > >- David > > > > > >_______________________________________________ > >agavi-dev mailing list > >[email protected] > >http://labworkz.com/cgi-bin/mailman/listinfo/agavi-dev > > > > > > > > > > > _______________________________________________ > agavi-dev mailing list > [email protected] > http://labworkz.com/cgi-bin/mailman/listinfo/agavi-dev _______________________________________________ agavi-dev mailing list [email protected] http://labworkz.com/cgi-bin/mailman/listinfo/agavi-dev
