[Phpmyadmin-devel] Clarification on Design of PMA_RecentFavoriteTable Class

Chanaka Dharmarathna pe.chanaka.ck at gmail.com
Thu Apr 17 19:01:10 CEST 2014


On Thu, Apr 17, 2014 at 9:47 AM, Edward Cheng <c4150221 at gmail.com> wrote:

> Hi,
> I thought we have these code can avoid errors, in my new PR I improve it.
> <pre>
> /**
>  * Returns class instance.
>  *
>  * @param string $type the table type
>  *
>  * @return PMA_RecentFavoriteTable
>  */
> public static function getInstance($type)
> {
>     if (is_null(self::$_instance)) {
>         self::$_instance[$type] = new PMA_RecentFavoriteTable($type);
>     } else {
>         if (self::$_instance[$type]->table_type != $type) {
>             self::$_instance[$type] = new PMA_RecentFavoriteTable($type);
>         }
>     }
>     return self::$_instance[$type];
> }
> </pre>
> Does my PR fix it?
>
> 2014-04-17 0:02 GMT+08:00 Chanaka Dharmarathna <pe.chanaka.ck at gmail.com>:
> > Hi,
> >
> > It seems like, the latest PMA_RecentFavoriteTable is trying to behave as
> > singleton design pattern. Is that a requirement ? I mean is there any
> reason
> > for making it singleton ? By the way, there is good possibility to create
> > new instances again and again with current logic.
> >
> > And the class has $table_type instance variable and more. Isn't it risky
> > behaviour to share a static instance throughout the web server, which has
> > instance variable which used in functions of that instance ?
> >
>

Hi Edward,

Your code does not avoid creating many instances. By the way, we better
first clarify our self, the requirement. Any thoughts ?

Regards !
-- 
Chanaka Dharmarathna
*http://chanakaindrajith.blogspot.com/*<http://chanakaindrajith.blogspot.com/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.phpmyadmin.net/pipermail/developers/attachments/20140417/8c8c5c62/attachment.html>


More information about the Developers mailing list