Esempio n. 1
0
 /**
  * Helper to break down template content in to a useful array.
  * @param  int     $mtime
  * @param  string  $content
  * @return array
  */
 protected function parseTemplateContent($query, $result, $fileName)
 {
     $options = ['isCompoundObject' => $query->getModel()->isCompoundObject()];
     $content = array_get($result, 'content');
     $processed = SectionParser::parse($content, $options);
     return ['fileName' => $fileName, 'content' => $content, 'mtime' => array_get($result, 'mtime'), 'markup' => $processed['markup'], 'code' => $processed['code']] + $processed['settings'];
 }
Esempio n. 2
0
 public function testParse()
 {
     // Test a single section
     $result = SectionParser::parse("this is a twig content");
     $this->assertInternalType('array', $result);
     $this->assertCount(3, $result);
     $this->assertArrayHasKey("settings", $result);
     $this->assertArrayHasKey("code", $result);
     $this->assertArrayHasKey("markup", $result);
     $this->assertEmpty($result["settings"]);
     $this->assertNull($result["code"]);
     $this->assertNotNull($result["markup"]);
     $this->assertEquals("this is a twig content", $result["markup"]);
     // Test two sections
     $result = SectionParser::parse("url = \"/blog/post/\" \n==\n this is a twig content");
     $this->assertInternalType('array', $result);
     $this->assertCount(3, $result);
     $this->assertArrayHasKey("settings", $result);
     $this->assertArrayHasKey("code", $result);
     $this->assertArrayHasKey("markup", $result);
     $this->assertNotNull($result["markup"]);
     $this->assertNotNull($result["settings"]);
     $this->assertNull($result["code"]);
     $this->assertEquals("this is a twig content", $result["markup"]);
     $this->assertInternalType("array", $result["settings"]);
     $this->assertArrayHasKey("url", $result["settings"]);
     $this->assertEquals("/blog/post/", $result["settings"]["url"]);
     // Test three sections
     $result = SectionParser::parse("url = \"/blog/post/\"\n[section]\nindex = value \n===\n \$var = 23; \n phpinfo(); \n===\n this is a twig content");
     $this->assertInternalType('array', $result);
     $this->assertCount(3, $result);
     $this->assertArrayHasKey("settings", $result);
     $this->assertArrayHasKey("code", $result);
     $this->assertArrayHasKey("markup", $result);
     $this->assertNotNull($result["settings"]);
     $this->assertNotNull($result["markup"]);
     $this->assertNotNull($result["code"]);
     $this->assertEquals("this is a twig content", $result["markup"]);
     $this->assertInternalType("array", $result["settings"]);
     $this->assertArrayHasKey("url", $result["settings"]);
     $this->assertEquals("/blog/post/", $result["settings"]["url"]);
     $this->assertContains("\$var = 23;", $result["code"]);
     $this->assertContains("phpinfo();", $result["code"]);
     $this->assertArrayHasKey("section", $result["settings"]);
     $this->assertInternalType("array", $result["settings"]["section"]);
     $this->assertArrayHasKey("index", $result["settings"]["section"]);
     $this->assertEquals("value", $result["settings"]["section"]["index"]);
     // Test zero sections
     $result = SectionParser::parse("");
     $this->assertCount(3, $result);
     $this->assertArrayHasKey("settings", $result);
     $this->assertArrayHasKey("code", $result);
     $this->assertArrayHasKey("markup", $result);
     $this->assertEmpty($result["settings"]);
     $this->assertNull($result["markup"]);
     $this->assertNull($result["code"]);
     $this->assertEquals("", $result["markup"]);
 }