PMA.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. <?php
  2. /* vim: set expandtab sw=4 ts=4 sts=4: */
  3. /**
  4. * phpMyAdmin main Controller
  5. *
  6. * @package PhpMyAdmin
  7. *
  8. */
  9. if (! defined('PHPMYADMIN')) {
  10. exit;
  11. }
  12. /**
  13. * Database listing.
  14. */
  15. require_once './libraries/List_Database.class.php';
  16. /**
  17. * phpMyAdmin main Controller
  18. *
  19. * @package PhpMyAdmin
  20. * @property resource $userlink
  21. * @property resource $controllink
  22. */
  23. class PMA
  24. {
  25. /**
  26. * Holds database list
  27. *
  28. * @var PMA_List_Database
  29. */
  30. protected $databases = null;
  31. /**
  32. * DBMS user link
  33. *
  34. * @var resource
  35. */
  36. protected $userlink = null;
  37. /**
  38. * DBMS control link
  39. *
  40. * @var resource
  41. */
  42. protected $controllink = null;
  43. /**
  44. * magic access to protected/inaccessible members/properties
  45. *
  46. * @param string $param parameter name
  47. *
  48. * @return mixed
  49. * @see http://php.net/language.oop5.overloading
  50. */
  51. public function __get($param)
  52. {
  53. switch ($param) {
  54. case 'databases' :
  55. return $this->getDatabaseList();
  56. break;
  57. case 'userlink' :
  58. return $this->userlink;
  59. break;
  60. case 'controllink' :
  61. return $this->controllink;
  62. break;
  63. }
  64. return null;
  65. }
  66. /**
  67. * magic access to protected/inaccessible members/properties
  68. *
  69. * @param string $param parameter name
  70. * @param mixed $value value to set
  71. *
  72. * @return void
  73. * @see http://php.net/language.oop5.overloading
  74. */
  75. public function __set($param, $value)
  76. {
  77. switch ($param) {
  78. case 'userlink' :
  79. $this->userlink = $value;
  80. break;
  81. case 'controllink' :
  82. $this->controllink = $value;
  83. break;
  84. }
  85. }
  86. /**
  87. * Accessor to PMA::$databases
  88. *
  89. * @return PMA_List_Databases
  90. */
  91. public function getDatabaseList()
  92. {
  93. if (null === $this->databases) {
  94. $this->databases = new PMA_List_Database(
  95. $this->userlink
  96. );
  97. }
  98. return $this->databases;
  99. }
  100. }
  101. ?>