Hi, Chanaka Dharmarathna,
I'm sorry code I provided have problems, see sample blow, I fixed them <pre> <?php header("Content-type:text/plain");
class Sample {
private $selfData; private $selfType;
private static $_instance;
public static function getInstance($type) { if (is_null(self::$_instance)) { self::$_instance[$type] = new Sample($type); } else { if (! array_key_exists($type, self::$_instance)) { self::$_instance[$type] = new Sample($type); } } return self::$_instance[$type]; }
public function __construct($type) { $this->selfType = $type; } public function setData($data) { $this->selfData = $data; } public function getData() { return $this->selfData; } }
Sample::getInstance('A')->setData('AData'); echo Sample::getInstance('A')->getData(); Sample::getInstance('B')->setData('BData'); echo Sample::getInstance('A')->getData(); echo Sample::getInstance('B')->getData();
</pre>
Results is "ADataADataBData", is that ok?
2014-04-18 1:01 GMT+08:00 Chanaka Dharmarathna pe.chanaka.ck@gmail.com:
On Thu, Apr 17, 2014 at 9:47 AM, Edward Cheng c4150221@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@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/
Learn Graph Databases - Download FREE O'Reilly Book "Graph Databases" is the definitive new guide to graph databases and their applications. Written by three acclaimed leaders in the field, this first edition is now available. Download your free book today! http://p.sf.net/sfu/NeoTech _______________________________________________ Phpmyadmin-devel mailing list Phpmyadmin-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/phpmyadmin-devel