PageRenderTime 66ms CodeModel.GetById 24ms RepoModel.GetById 1ms app.codeStats 0ms

/heart/reborn/src/Reborn/Cores/Alias.php

https://bitbucket.org/yelinaung/reborn
PHP | 96 lines | 44 code | 9 blank | 43 comment | 1 complexity | 13644bac74097bc816ffd0ffbe4569ab MD5 | raw file
  1. <?php
  2. namespace Reborn\Cores;
  3. /**
  4. * Class Alias Library for Reborn CMS
  5. *
  6. * @package default
  7. * @author Reborn CMS Development Team
  8. **/
  9. class Alias
  10. {
  11. /**
  12. * Marking for Reborn's Core Class are alias or not
  13. *
  14. * @var bool
  15. **/
  16. protected static $coreIsAlias = false;
  17. /**
  18. * Array list for Reborn's Core Class
  19. *
  20. * @var array
  21. **/
  22. protected static $coreClasses = array(
  23. 'ArrayMethods' => 'Reborn\Cores\Methods_ArrayMethods',
  24. 'Config' => 'Reborn\Cores\Config',
  25. 'Controller' => 'Reborn\Cores\Controller',
  26. 'ControllerContainer' => 'Reborn\Cores\ControllerContainer',
  27. 'DB' => 'Reborn\Cores\DB',
  28. 'Eloquent' => 'Illuminate\Database\Eloquent\Model',
  29. 'Event' => 'Reborn\Cores\Event',
  30. 'RbException' => 'Reborn\Cores\RbException',
  31. 'Redirect' => 'Reborn\Cores\Redirect',
  32. 'Form' => 'Reborn\Cores\Form',
  33. 'Input' => 'Reborn\Cores\Input',
  34. 'Inspector' => 'Reborn\Cores\Inspector',
  35. 'Log' => 'Reborn\Cores\Log',
  36. 'Module' => 'Reborn\Cores\Module',
  37. 'Route' => 'Reborn\Cores\Route',
  38. 'Router' => 'Reborn\Cores\Router',
  39. 'Model' => 'Reborn\Cores\Model',
  40. 'Schema' => 'Reborn\Cores\DB\Schema',
  41. 'Setting' => 'Reborn\Cores\Setting',
  42. //'Template' => 'Reborn\Cores\Template',
  43. 'Uri' => 'Reborn\Cores\Uri',
  44. //'View' => 'Reborn\Cores\View',
  45. );
  46. /**
  47. * Construct method is final, don't allown to override these method.
  48. *
  49. */
  50. final function __construct() {}
  51. /**
  52. * Class Alias for Reborn's Cores Class.
  53. * This method is call when application started.
  54. * But not allow to call after one time.
  55. *
  56. * @return void
  57. */
  58. public static function coreClassAlias()
  59. {
  60. if(! static::$coreIsAlias)
  61. {
  62. static::aliasRegister(static::$coreClasses);
  63. static::$coreIsAlias = true;
  64. }
  65. }
  66. /**
  67. * Register the class alias.
  68. * You can use your class (enternal of Reborn's Cores) to alies use this method.
  69. * <code>
  70. * // If you want to use Products\Libs\Shopper to Shopper
  71. * Alias::aliasRegister(array('Shopper' => 'Products\Libs\Shopper'));
  72. *
  73. * // Ok, Shopper class is aliased now
  74. * Shopper::calculate();
  75. * </code>
  76. *
  77. * @param array $classes Array data for class alias
  78. * @return void
  79. */
  80. public static function aliasRegister($classes = array())
  81. {
  82. foreach($classes as $alias => $class)
  83. {
  84. class_alias($class, $alias);
  85. }
  86. }
  87. } // END class Alias