make the database list more magic:
load/fetch only if really required use SPL ArrayObject to behave like an array
This commit is contained in:
94
libraries/PMA.php
Normal file
94
libraries/PMA.php
Normal file
@@ -0,0 +1,94 @@
|
||||
<?php
|
||||
/**
|
||||
* Enter description here...
|
||||
*
|
||||
*/
|
||||
require_once './libraries/List_Database.class.php';
|
||||
|
||||
/**
|
||||
* phpMyAdmin mian Controller
|
||||
*
|
||||
*
|
||||
*
|
||||
*/
|
||||
class PMA
|
||||
{
|
||||
/**
|
||||
* Holds database list
|
||||
*
|
||||
* @var PMA_List_Datase
|
||||
*/
|
||||
protected $databases = null;
|
||||
|
||||
/**
|
||||
* DBMS user link
|
||||
*
|
||||
* @var resource
|
||||
*/
|
||||
protected $userlink = null;
|
||||
|
||||
/**
|
||||
* DBMS control link
|
||||
*
|
||||
* @var resource
|
||||
*/
|
||||
protected $controllink = null;
|
||||
|
||||
/**
|
||||
* magic access to protected/inaccessible members/properties
|
||||
*
|
||||
* @see http://php.net/language.oop5.overloading
|
||||
*/
|
||||
public function __get($param)
|
||||
{
|
||||
switch ($param) {
|
||||
case 'databases' :
|
||||
return $this->getDatabaseList();
|
||||
break;
|
||||
case 'userlink' :
|
||||
return $this->userlink;
|
||||
break;
|
||||
case 'controllink' :
|
||||
return $this->controllink;
|
||||
break;
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* magic access to protected/inaccessible members/properties
|
||||
*
|
||||
* @see http://php.net/language.oop5.overloading
|
||||
*/
|
||||
public function __set($param, $value)
|
||||
{
|
||||
switch ($param) {
|
||||
case 'userlink' :
|
||||
$this->userlink = $value;
|
||||
break;
|
||||
case 'controllink' :
|
||||
$this->controllink = $value;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Accessor to PMA::$databases
|
||||
*
|
||||
* @uses PMA::$databases
|
||||
* @uses PMA::$userlink
|
||||
* @uses PMA::$controllink
|
||||
* @uses PMA_List_Database
|
||||
* @return PMA_List_Databases
|
||||
*/
|
||||
public function getDatabaseList()
|
||||
{
|
||||
if (null === $this->databases) {
|
||||
$this->databases = new PMA_List_Database($this->userlink, $this->controllink);
|
||||
}
|
||||
|
||||
return $this->databases;
|
||||
}
|
||||
}
|
||||
?>
|
Reference in New Issue
Block a user