getIdentifier() public method

Returns the parsed identifier.
public getIdentifier ( ) : string
return string
Beispiel #1
0
 /**
  * @param ContentQueryParser $contentQuery
  *
  * @return mixed
  */
 public function __invoke(ContentQueryParser $contentQuery)
 {
     if (is_numeric($contentQuery->getIdentifier())) {
         $contentQuery->setParameter('id', $contentQuery->getIdentifier());
     } else {
         $contentQuery->setParameter('slug', $contentQuery->getIdentifier());
     }
     if (count($contentQuery->getContentTypes()) === 1) {
         $contentQuery->setDirective('returnsingle', true);
     }
     return call_user_func_array($contentQuery->getHandler('select'), [$contentQuery]);
 }
 public function testQueryParse()
 {
     $app = $this->getApp();
     $qb = new ContentQueryParser($app['storage']);
     $qb->setQuery('pages');
     $qb->parse();
     $this->assertEquals(['pages'], $qb->getContentTypes());
     $this->assertEquals('select', $qb->getOperation());
     $this->assertEmpty($qb->getIdentifier());
     $qb = new ContentQueryParser($app['storage']);
     $qb->setQuery('page/about');
     $qb->parse();
     $this->assertEquals(['page'], $qb->getContentTypes());
     $this->assertEquals('select', $qb->getOperation());
     $this->assertEquals('about', $qb->getIdentifier());
     $qb = new ContentQueryParser($app['storage']);
     $qb->setQuery('(pages,entries)/search');
     $qb->parse();
     $this->assertEquals(['pages', 'entries'], $qb->getContentTypes());
     $this->assertEquals('search', $qb->getOperation());
     $this->assertEmpty($qb->getIdentifier());
     $qb = new ContentQueryParser($app['storage']);
     $qb->setQuery('(pages,entries,showcases)/latest');
     $qb->parse();
     $this->assertEquals(['pages', 'entries', 'showcases'], $qb->getContentTypes());
     $this->assertEquals('latest', $qb->getOperation());
     $this->assertEmpty($qb->getIdentifier());
     $qb = new ContentQueryParser($app['storage']);
     $qb->setQuery('pages,entries/about');
     $qb->parse();
     $this->assertEquals(['pages', 'entries'], $qb->getContentTypes());
     $this->assertEquals('select', $qb->getOperation());
     $this->assertEquals('about', $qb->getIdentifier());
     $qb = new ContentQueryParser($app['storage']);
     $qb->setQuery('pages/first/3');
     $qb->parse();
     $this->assertEquals(['pages'], $qb->getContentTypes());
     $this->assertEquals('first', $qb->getOperation());
     $this->assertEquals('3', $qb->getDirective('limit'));
     $this->assertEmpty($qb->getIdentifier());
     $qb = new ContentQueryParser($app['storage']);
     $qb->setQuery('pages,entries/search');
     $qb->parse();
     $this->assertEquals('search', $qb->getOperation());
     $this->assertEquals(['pages', 'entries'], $qb->getContentTypes());
     $this->assertEmpty($qb->getIdentifier());
     $qb = new ContentQueryParser($app['storage']);
     $qb->setQuery('page/5');
     $qb->parse();
     $this->assertEquals(['page'], $qb->getContentTypes());
     $this->assertEquals('select', $qb->getOperation());
     $this->assertEquals('5', $qb->getIdentifier());
     $qb = new ContentQueryParser($app['storage']);
     $qb->setQuery('(entries,events)/random/10');
     $qb->parse();
     $this->assertEquals(['entries', 'events'], $qb->getContentTypes());
     $this->assertEquals('random', $qb->getOperation());
     $this->assertEquals('10', $qb->getDirective('limit'));
     $this->assertEmpty($qb->getIdentifier());
 }
 public function testSingleItemMode()
 {
     $app = $this->getApp();
     $qb = new ContentQueryParser($app['storage'], $app['query.select']);
     $qb->setQuery('pages/5');
     $qb->setParameter('printquery', true);
     $qb->parse();
     $this->assertEquals(['pages'], $qb->getContentTypes());
     $this->assertEquals('namedselect', $qb->getOperation());
     $this->assertEquals('5', $qb->getIdentifier());
     $this->expectOutputString('SELECT pages.* FROM bolt_pages pages WHERE pages.id = :id_1');
     $res = $qb->fetch();
     $this->assertInstanceOf('Bolt\\Storage\\Entity\\Content', $res);
 }