Source for file Storage.class.php

Documentation is available at Storage.class.php

  1. <?php
  2. /**
  3. * NAJAX Events Storage Namespace file.
  4. *
  5. * <p>This file defines the {@link NAJAX_Events_Storage} Class.</p>
  6. * <p>Example:</p>
  7. * <code>
  8. * <?php
  9. *
  10. * require_once('najax.php');
  11. *
  12. * $storage = NAJAX_Events_Storage::getStorage();
  13. *
  14. * $storage->postEvent('event', 'class');
  15. *
  16. * ?>
  17. * </code>
  18. *
  19. * @author Stanimir Angeloff
  20. *
  21. * @package NAJAX
  22. *
  23. * @subpackage NACLES
  24. *
  25. * @version 0.4.1.0
  26. *
  27. */
  28.  
  29. /**
  30. * NAJAX Events Storage Class.
  31. *
  32. * <p>This class is used as base class for all NACLES storage providers.</p>
  33. * <p>The class also defines the {@link getStorage} method which
  34. * is used to retrieve an instane to the configurated storage.</p>
  35. * <p>Example NACLES provider: {@link NAJAX_Events_Storage_MySQL}.</p>
  36. * <p>Example:</p>
  37. * <code>
  38. * <?php
  39. *
  40. * define('NAJAX_EVENTS_STORAGE_DSN', 'MySQL://server=?;user=?;password=?;database=?');
  41. *
  42. * require_once('najax.php');
  43. *
  44. * // The line below will return a NAJAX_Events_Storage_MySQL
  45. * // class instance.
  46. * $storage = NAJAX_Events_Storage::getStorage();
  47. *
  48. * $storage->postEvent('event', 'class');
  49. *
  50. * ?>
  51. * </code>
  52. *
  53. * @author Stanimir Angeloff
  54. *
  55. * @package NAJAX
  56. *
  57. * @subpackage NACLES
  58. *
  59. * @version 0.4.1.0
  60. *
  61. */
  62. class NAJAX_Events_Storage
  63. {
  64. /**
  65. * Retrieves an instane to the configurated NACLES storage provider.
  66. *
  67. * <p>Example:</p>
  68. * <code>
  69. * <?php
  70. *
  71. * require_once('najax.php');
  72. *
  73. * $storage = NAJAX_Events_Storage::getStorage();
  74. *
  75. * $storage->postEvent('event', 'class');
  76. *
  77. * ?>
  78. * </code>
  79. *
  80. * @access public
  81. *
  82. * @return object Singleton {@link NAJAX_Events_Storage} inherited class based
  83. * on the configuration (see {@link NAJAX_EVENTS_STORAGE_DSN}).
  84. *
  85. * @static
  86. *
  87. */
  88. function getStorage()
  89. {
  90. static $instance;
  91.  
  92. if ( ! isset($instance)) {
  93.  
  94. $className = null;
  95.  
  96. $classParameters = null;
  97.  
  98. $separator = '://';
  99.  
  100. $position = strpos(NAJAX_EVENTS_STORAGE_DSN, $separator);
  101.  
  102. if ($position === false) {
  103.  
  104. $className = NAJAX_EVENTS_STORAGE_DSN;
  105.  
  106. } else {
  107.  
  108. $className = substr(NAJAX_EVENTS_STORAGE_DSN, 0, $position);
  109.  
  110. $classParameters = substr(NAJAX_EVENTS_STORAGE_DSN, $position + strlen($separator));
  111. }
  112.  
  113. if (empty($className)) {
  114.  
  115. return null;
  116. }
  117.  
  118. $fileName = NAJAX_BASE . '/classes/events/storage/' . $className . '.class.php';
  119.  
  120. require_once($fileName);
  121.  
  122. $realClassName = 'NAJAX_Events_Storage_' . $className;
  123.  
  124. if ( ! class_exists($realClassName)) {
  125.  
  126. return null;
  127. }
  128.  
  129. $instance = new $realClassName($classParameters);
  130. }
  131.  
  132. return $instance;
  133. }
  134.  
  135. /**
  136. * Abstract base class method.
  137. *
  138. * <p>Successor classes should override this method.</p>
  139. *
  140. * @access public
  141. *
  142. * @return bool
  143. *
  144. */
  145. function postEvent()
  146. {
  147. return true;
  148. }
  149.  
  150. /**
  151. * Abstract base class method.
  152. *
  153. * <p>Successor classes should override this method.</p>
  154. *
  155. * @access public
  156. *
  157. * @return bool
  158. *
  159. */
  160. function postMultipleEvents()
  161. {
  162. return true;
  163. }
  164.  
  165. /**
  166. * Abstract base class method.
  167. *
  168. * <p>Successor classes should override this method.</p>
  169. *
  170. * @access public
  171. *
  172. * @return bool
  173. *
  174. */
  175. function cleanEvents()
  176. {
  177. return true;
  178. }
  179.  
  180. /**
  181. * Abstract base class method.
  182. *
  183. * <p>Successor classes should override this method.</p>
  184. *
  185. * @access public
  186. *
  187. * @return bool
  188. *
  189. */
  190. function filterEvents()
  191. {
  192. return true;
  193. }
  194.  
  195. /**
  196. * Abstract base class method.
  197. *
  198. * <p>Successor classes should override this method.</p>
  199. *
  200. * @access public
  201. *
  202. * @return bool
  203. *
  204. */
  205. function filterMultipleEvents()
  206. {
  207. return true;
  208. }
  209. }
  210. ?>

Documentation generated on Tue, 20 Sep 2005 21:40:36 +0300 by phpDocumentor 1.3.0RC3