Example #1
0
 public function runSource(Request $request, $simu, $test = false)
 {
     $form = $request->request->all();
     $this->simu = new Simulator($this);
     if ($test && file_exists(dirname(dirname(__FILE__)) . '/Resources/data/simulators/work/' . $simu . '.xml')) {
         $this->simu->loadForSource(dirname(dirname(__FILE__)) . '/Resources/data/simulators/work/' . $simu . '.xml');
     } else {
         $this->simu->loadForSource(dirname(dirname(__FILE__)) . '/Resources/data/simulators/' . $simu . '.xml');
     }
     $source = $this->simu->getSourceById((int) $form['source']);
     $params = $source->getParameters();
     foreach ($params as $param) {
         $name = $param->getName();
         $value = $form[$name];
         $data = $this->simu->getDataById($param->getData());
         if ($data !== null) {
             $data->setValue($value);
         }
     }
     if (isset($form['returnPath'])) {
         $source->setReturnPath($form['returnPath']);
     }
     $result = $this->processSource($source);
     if ($source->getReturnType() == 'xml') {
         $result = ResultFilter::xml2array($result);
         if (count($result) == 1 && is_array($result[0])) {
             $result = $result[0];
         }
     }
     $response = new Response();
     if ($this->isDevelopmentEnvironment() && !version_compare(phpversion(), '5.4.0', '<')) {
         $response->setContent(json_encode($result, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES | JSON_HEX_APOS | JSON_HEX_QUOT));
     } else {
         $response->setContent(json_encode($result));
     }
     $response->headers->set('Content-Type', 'application/json');
     return $response;
 }