PageRenderTime 58ms CodeModel.GetById 31ms RepoModel.GetById 1ms app.codeStats 0ms

/www/libs/nette-dev/Reflection/FunctionReflection.php

https://github.com/bazo/Mokuji
PHP | 110 lines | 44 code | 39 blank | 27 comment | 0 complexity | 52d7d0eb5d7ac87d0b5506750af61353 MD5 | raw file
Possible License(s): BSD-3-Clause, MIT
  1. <?php
  2. /**
  3. * Nette Framework
  4. *
  5. * @copyright Copyright (c) 2004, 2010 David Grudl
  6. * @license http://nettephp.com/license Nette license
  7. * @link http://nettephp.com
  8. * @category Nette
  9. * @package Nette\Reflection
  10. */
  11. /**
  12. * Reports information about a function.
  13. *
  14. * @copyright Copyright (c) 2004, 2010 David Grudl
  15. * @package Nette\Reflection
  16. */
  17. class FunctionReflection extends ReflectionFunction
  18. {
  19. public function __toString()
  20. {
  21. return 'Function ' . $this->getName() . '()';
  22. }
  23. /********************* Reflection layer ****************d*g**/
  24. /**
  25. * @return FunctionReflection
  26. * @ignore internal
  27. */
  28. public static function import(ReflectionFunction $ref)
  29. {
  30. return new self($ref->getName());
  31. }
  32. /**
  33. * @return ExtensionReflection
  34. */
  35. public function getExtension()
  36. {
  37. return ($ref = parent::getExtension()) ? ExtensionReflection::import($ref) : NULL;
  38. }
  39. public function getParameters()
  40. {
  41. return array_map(array('MethodParameterReflection', 'import'), parent::getParameters());
  42. }
  43. /********************* Nette\Object behaviour ****************d*g**/
  44. /**
  45. * @return ClassReflection
  46. */
  47. public function getReflection()
  48. {
  49. return new ClassReflection($this);
  50. }
  51. public function __call($name, $args)
  52. {
  53. return ObjectMixin::call($this, $name, $args);
  54. }
  55. public function &__get($name)
  56. {
  57. return ObjectMixin::get($this, $name);
  58. }
  59. public function __set($name, $value)
  60. {
  61. return ObjectMixin::set($this, $name, $value);
  62. }
  63. public function __isset($name)
  64. {
  65. return ObjectMixin::has($this, $name);
  66. }
  67. public function __unset($name)
  68. {
  69. throw new MemberAccessException("Cannot unset the property {$this->reflection->name}::\$$name.");
  70. }
  71. }