Overview

Namespaces

  • BN
    • Collections
    • Compiler
      • Grammar
      • Parser
        • Operator
        • Token
      • Postfix
        • Operands
        • Operator
        • Token
      • Scanner
        • Converter
      • Token
  • Demo
  • None

Classes

  • Benchmark
  • Controller
  • GrammarDecorator
  • Model
  • NativeEval
  • Presenter

Functions

  • examples
  • expressionsToLines
  • grammar
  • transformVars
  • Overview
  • Namespace
  • Class
  • Tree
 1: <?php
 2: 
 3: namespace Demo;
 4: 
 5: use BN\Compiler\Grammar\GrammarBuilder;
 6: use BN\Compiler\EvaluatorInteractor;
 7: 
 8: class Controller
 9: {
10:     private $model;
11:     private $variables;
12:     private $interactor;
13: 
14:     public function __construct(GrammarBuilder $grammar, $data)
15:     {
16:         $defineVariables = isset($data['variables']) && $data['variables'] !== '';
17:         $this->variables = $defineVariables ? transformVars($data['variables']) : new \stdClass();
18:         $inputVariables = $defineVariables ? $data['variables'] : '';
19:         $input = isset($data['input']) ? $data['input'] : '';
20:         $this->model = new Model($input, $inputVariables);
21:         $this->interactor = new EvaluatorInteractor($grammar);
22:     }
23: 
24:     public function __invoke()
25:     {
26:         $presenter = new Presenter($this->model);
27:         $this->interactor->__invoke($this->model->input, $this->variables, $presenter);
28:         $presenter->variables($this->variables);
29:     }
30: 
31:     public function getModel()
32:     {
33:         return $this->model;
34:     }
35: }
36: 
37: function transformVars($vars)
38: {
39:     $variables = new \stdClass();
40:     foreach (explode(',', $vars) as $definition) {
41:         $v = explode('=', $definition);
42:         if (count($v) == 2) {
43:             $variables->{$v[0]} = $v[1];
44:         }
45:     }
46:     return $variables;
47: }
48: 
BN-PHP - Big Number data type for PHP API documentation generated by ApiGen 2.8.0