Пример #1
0
 /**
  * @covers Cradle\Handlebars\HandlebarsException::forCompileError
  */
 public function testForCompileError()
 {
     $actual = null;
     $code = "Line 1\nLine 2\nLine 3\nLine 4\n";
     $error = ['line' => 2, 'message' => 'foobar'];
     try {
         throw HandlebarsException::forCompileError($error, $code, 1);
     } catch (HandlebarsException $e) {
         $actual = $e->getMessage();
     }
     $expected = "foobar on line 2 \n```\n2: Line 2\n3: Line 3\n```\n";
     $this->assertEquals($expected, $actual);
 }
Пример #2
0
 /**
  * Returns a very nice error message
  *
  * @param *string $code
  *
  * @return HandlebarsHandler
  */
 protected function checkEval($code)
 {
     $error = error_get_last();
     if (isset($error['message']) && isset($error['line']) && $error['message'] === 'parse error') {
         $code = explode("\n", $code);
         $start = $error['line'] - 25;
         if ($start < 0) {
             $start = 0;
         }
         $code = array_splice($code, $start, 50);
         foreach ($code as $i => $line) {
             $code[$i] = ++$start . ': ' . $line;
         }
         throw HandlebarsException::forCompileError($error, $code);
     }
     return $this;
 }