123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132 |
- <?php
- /* vim: set expandtab sw=4 ts=4 sts=4: */
- /**
- * The PluginManager class is used alongside PluginObserver to implement
- * the Observer Design Pattern.
- *
- * @package PhpMyAdmin
- */
- if (! defined('PHPMYADMIN')) {
- exit;
- }
- /**
- * This class implements the SplSubject interface
- *
- * @todo implement all methods
- * @package PhpMyAdmin
- * @link http://php.net/manual/en/class.splsubject.php
- *
- */
- class PluginManager implements SplSubject
- {
- /**
- * Contains a list with all the plugins that attach to it
- *
- * @var type SplObjectStorage
- */
- private $_storage;
- /**
- * Contains information about the current plugin state
- *
- * @var type string
- */
- private $_status;
- /**
- * Constructor
- * Initializes $_storage with an empty SplObjectStorage
- */
- public function __construct()
- {
- $this->_storage = new SplObjectStorage();
- }
- /**
- * Attaches an SplObserver so that it can be notified of updates
- *
- * @param SplObserver $observer The SplObserver to attach
- *
- * @return void
- */
- function attach (SplObserver $observer )
- {
- $this->_storage->attach($observer);
- }
- /**
- * Detaches an observer from the subject to no longer notify it of updates
- *
- * @param SplObserver $observer The SplObserver to detach
- *
- * @return void
- */
- function detach (SplObserver $observer)
- {
- $this->_storage->detach($observer);
- }
- /**
- * It is called after setStatus() was run by a certain plugin, and has
- * the role of sending a notification to all of the plugins in $_storage,
- * by calling the update() method for each of them.
- *
- * @todo implement
- * @return void
- */
- function notify ()
- {
- }
- /* ~~~~~~~~~~~~~~~~~~~~ Getters and Setters ~~~~~~~~~~~~~~~~~~~~ */
- /**
- * Gets the list with all the plugins that attach to it
- *
- * @return type SplObjectStorage
- */
- public function getStorage()
- {
- return $this->_storage;
- }
- /**
- * Setter for $_storage
- *
- * @param SplObjectStorage $_storage the list with all the plugins that
- * attach to it
- *
- * @return void
- */
- public function setStorage($_storage)
- {
- $this->_storage = $_storage;
- }
- /**
- * Gets the information about the current plugin state
- * It is called by all the plugins in $_storage in their update() method
- *
- * @return type mixed
- */
- public function getStatus()
- {
- return $this->_status;
- }
- /**
- * Setter for $_status
- * If a plugin changes its status, this has to be remembered in order to
- * notify the rest of the plugins that they should update
- *
- * @param mixed $_status contains information about the current plugin state
- *
- * @return void
- */
- public function setStatus($_status)
- {
- $this->_status = $_status;
- }
- }
- ?>
|