Storm\Drivers\Fluent\Object\Functional\IReader::Read PHP Метод

Read() публичный Метод

public Read ( ReflectionFunctionAbstract $Reflection ) : Storm\Drivers\Fluent\Object\Functional\IData
$Reflection ReflectionFunctionAbstract
Результат Storm\Drivers\Fluent\Object\Functional\IData
    public function Read(\ReflectionFunctionAbstract $Reflection);

Usage Example

Пример #1
0
 /**
  * @return Functional\IAST
  */
 public function FunctionToAST(Object\IEntityMap $EntityMap, callable $Function, $ResolveVariables = true)
 {
     $FunctionData = $this->Reader->Read($this->Reader->GetReflection($Function));
     $Parameters = $FunctionData->GetParameters();
     if (count($Parameters) !== 1) {
         throw new InvalidFunctionException($FunctionData, 'Signature must contain a single parameter');
     }
     $EntityVariableName = $Parameters[0]->name;
     $AST = $this->Parser->Parse($FunctionData->GetBodySource(), $EntityMap, $EntityVariableName);
     $AST->ExpandVariables();
     if ($ResolveVariables) {
         $AST->Resolve($FunctionData->GetUsedVariablesMap());
         if (!$AST->IsResolved()) {
             throw new InvalidFunctionException($FunctionData, 'Contains unresolvable variables: $' . implode(', $', $AST->GetUnresolvedVariables()));
         }
     }
     $AST->Simplify();
     return $AST;
 }