tangra logo
   
[ class tree: tangra_lib ] [ index: tangra_lib ] [ all elements ]
 

Source for file modules_register.class.php

Documentation is available at modules_register.class.php

  1. <?php
  2. // *** Tangra (Application Framework and Tools for PHP)
  3. // $Id$
  4. //
  5.  
  6.  
  7. /**
  8.  * Contains class Modules_Register
  9.  *
  10.  * @package  tangra_lib
  11.  * @subpackage  core
  12.  */
  13.  
  14.  
  15. /**
  16.  * Class that is used to by boot process to register modules
  17.  *
  18.  * @package  tangra_lib
  19.  * @subpackage  core
  20.  */
  21. class Modules_Register extends Tangra_Class {
  22.     /**
  23.      * Array that contains registered modules
  24.      *
  25.      * @var array 
  26.      * @internal
  27.      */
  28.     private $modules = array();
  29.  
  30.     /**
  31.      * Registers module
  32.      *
  33.      * @param string $module_given_name Name of the module as given by user
  34.      * @param array $module_info 
  35.      */
  36.     public function register_module($module_given_name$module_info{
  37.         if (!$this->is_module_registered($module_given_name)) {
  38.             $this->modules[$module_given_name]['module_info'$module_info;
  39.         else {
  40.             throw new Tangra_Exception('Module "'.$module_given_name.'" is already registered.');
  41.         }
  42.     }
  43.  
  44.     /**
  45.      * Checks if module is already registered
  46.      *
  47.      * @param string $module_given_name Name of the module
  48.      * @return boolean 
  49.      */
  50.     public function is_module_registered($module_given_name{
  51.         return array_key_exists($module_given_name$this->modules);
  52.     }
  53.  
  54.     /**
  55.      * Sets module configuration
  56.      *
  57.      * @param string $module_given_name Name of the module
  58.      * @param array $config 
  59.      */
  60.     public function set_module_config($module_given_name$config{
  61.         if ($this->is_module_registered($module_given_name)) {
  62.             $this->modules[$module_given_name]['config'$config;
  63.         else {
  64.             throw new Tangra_Exception('Module "'.$module_given_name.'" is not registered. Register it with $WSC->register_module(...).');
  65.         }
  66.     }
  67.  
  68.  
  69.     /**
  70.      * Returns module configuration
  71.      *
  72.      * @param string $module_given_name Name of the module
  73.      * @return array 
  74.      */
  75.     public function get_module_config($module_given_name{
  76.         if ($this->is_module_registered($module_given_name)) {
  77.             $ret $this->modules[$module_given_name]['config'];
  78.         else {
  79.             throw new Tangra_Exception('Module "'.$module_given_name.'" is not registered. Register it with $WSC->register_module(...).');
  80.         }
  81.  
  82.         return $ret;
  83.     }
  84.  
  85.  
  86.     /**
  87.      * Returns module info
  88.      *
  89.      * @param string $module_given_name Name of the module
  90.      * @return array 
  91.      */
  92.     public function get_module_info($module_given_name{
  93.         if ($this->is_module_registered($module_given_name)) {
  94.             $ret $this->modules[$module_given_name]['module_info'];
  95.         else {
  96.             throw new Tangra_Exception('Module "'.$module_given_name.'" is not registered. Register it with $WSC->register_module(...).');
  97.         }
  98.  
  99.         return $ret;
  100.     }
  101. }