On Sat, Sep 15, 2012 at 9:42 PM, Dieter Adriaenssens <dieter.adriaenssens@gmail.com> wrote:
2012/9/15 Madhura Jayaratne <madhura.cj@gmail.com>:
>
>
> On Sat, Sep 15, 2012 at 12:32 PM, Chanaka Dharmarathna
> <pe.chanaka.ck@gmail.com> wrote:
>>
>> Hi,
>>
>>> >> I stumbled upon this piece of code (random pick) :
>>> >>
>>> >>
>>> >> PMA_CommonFunctions::getInstance()->backquote($_REQUEST['view']['name'])
>>> >>
>>> >> and it made me wonder if using a singleton for PMA_CommonFunctions is
>>> >> necessary, because basicaly PMA_Commonfunctions is a collection of
>>> >> methods, not really a 'living' object.
>>> >> So then I had a look at the class, and I discovered that the class has
>>> >> no class variables (apart from the _instance variable) and an empty
>>> >> constructor.
>>
>>
>> Exactly, that class has no properties except _instance which needed for
>> implement this pattern for refer to the class instance itself. So this is
>> not a living object.
>>
>> I search bit more in this kind of cases and get to know that, this kind of
>> utility classes are making static. And it is faster than singleton class.
>> From the both approaches our work can be done. But not the exact need for
>> use singleton pattern here.
>>
>>>
>>> >> So basicly this should be a static class, with static methods, because
>>> >> no instance is needed for it to work.
>>> >>
>>> >> And the above piece of code will become :
>>> >>
>>> >> PMA_CommonFunctions::backquote($_REQUEST['view']['name'])
>>> >>
>>> >> BTW: If you convert it to a static class, don't forget to replace the
>>> >> $this->method() calls by the static equivalent self::method().
>>
>>
>> I'll do the necessary modifications if others think this approach is good.
>>
> I also agree that making the methods static would be the better approach.
> Since the class contains a set of utility functions, how about renaming the
> class to 'Util' on the same time? This will save a bit of line space and
> help us fix some coding style violations.
>

Hi,

I agree with using a shorter class name, but it should be 'PMA_Util'.

Yes, thanks for pointing that out.

--
Thanks and Regards,

Madhura Jayaratne