diff options
Diffstat (limited to 'opis/closure/src/Analyzer.php')
-rw-r--r-- | opis/closure/src/Analyzer.php | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/opis/closure/src/Analyzer.php b/opis/closure/src/Analyzer.php new file mode 100644 index 00000000..9618b1c7 --- /dev/null +++ b/opis/closure/src/Analyzer.php @@ -0,0 +1,62 @@ +<?php +/* =========================================================================== + * Copyright (c) 2018-2021 Zindex Software + * + * Licensed under the MIT License + * =========================================================================== */ + +namespace Opis\Closure; + +use Closure; +use SuperClosure\Analyzer\ClosureAnalyzer; + +/** + * @deprecated We'll remove this class + */ +class Analyzer extends ClosureAnalyzer +{ + /** + * Analyzer a given closure. + * + * @param Closure $closure + * + * @return array + */ + public function analyze(Closure $closure) + { + $reflection = new ReflectionClosure($closure); + $scope = $reflection->getClosureScopeClass(); + + $data = [ + 'reflection' => $reflection, + 'code' => $reflection->getCode(), + 'hasThis' => $reflection->isBindingRequired(), + 'context' => $reflection->getUseVariables(), + 'hasRefs' => false, + 'binding' => $reflection->getClosureThis(), + 'scope' => $scope ? $scope->getName() : null, + 'isStatic' => $reflection->isStatic(), + ]; + + return $data; + } + + /** + * @param array $data + * @return mixed + */ + protected function determineCode(array &$data) + { + return null; + } + + /** + * @param array $data + * @return mixed + */ + protected function determineContext(array &$data) + { + return null; + } + +} |