Source for file LimitedScope.php

Documentation is available at LimitedScope.php

  1. 1: <?php
  2. 2:  
  3. 3: /**
  4. 4:  * Nette Framework
  5. 5:  *
  6. 6:  * Copyright (c) 2004, 2009 David Grudl (http://davidgrudl.com)
  7. 7:  *
  8. 8:  * This source file is subject to the "Nette license" that is bundled
  9. 9:  * with this package in the file license.txt.
  10. 10:  *
  11. 11:  * For more information please see https://nette.org
  12. 12:  *
  13. 13:  * @copyright  Copyright (c) 2004, 2009 David Grudl
  14. 14:  * @license    https://nette.org/license  Nette license
  15. 15:  * @link       https://nette.org
  16. 16:  * @category   Nette
  17. 17:  * @package    Nette\Loaders
  18. 18:  * @version    $Id$
  19. 19:  */
  20. 20:  
  21. 21:  
  22. 22:  
  23. 23: /**
  24. 24:  * Limited scope for PHP code evaluation and script including.
  25. 25:  *
  26. 26:  * @author     David Grudl
  27. 27:  * @copyright  Copyright (c) 2004, 2009 David Grudl
  28. 28:  * @package    Nette\Loaders
  29. 29:  */
  30. 30: final class LimitedScope
  31. 31: {
  32. 32:  
  33. 33:     /**
  34. 34:      * Static class - cannot be instantiated.
  35. 35:      */
  36. 36:     final public function __construct()
  37. 37:     {
  38. 38:         throw new LogicException("Cannot instantiate static class " get_class($this));
  39. 39:     }
  40. 40:  
  41. 41:  
  42. 42:  
  43. 43:     /**
  44. 44:      * Evaluates code in limited scope.
  45. 45:      * @param  string  PHP code
  46. 46:      * @param  array   local variables
  47. 47:      * @return mixed   the return value of the evaluated code
  48. 48:      */
  49. 49:     public static function evaluate($_codearray $_vars NULL)
  50. 50:     {
  51. 51:         if ($_vars !== NULL{
  52. 52:             extract($_vars);
  53. 53:         }
  54. 54:         return eval('?>' func_get_arg(0));
  55. 55:     }
  56. 56:  
  57. 57:  
  58. 58:  
  59. 59:     /**
  60. 60:      * Includes script in a limited scope.
  61. 61:      * @param  string  file to include
  62. 62:      * @param  array   local variables
  63. 63:      * @return mixed   the return value of the included file
  64. 64:      */
  65. 65:     public static function load($_filearray $_vars NULL)
  66. 66:     {
  67. 67:         if ($_vars !== NULL{
  68. 68:             extract($_vars);
  69. 69:         }
  70. 70:         return include func_get_arg(0);
  71. 71:     }
  72. 72:  
  73. 73: }