library doctrine-orm-entity-finder
Boilerplate for building finder classes to be used with Doctrine ORM
kyoushu/doctrine-orm-entity-finder
Boilerplate for building finder classes to be used with Doctrine ORM
- Tuesday, November 28, 2017
- by Kyoushu
- Repository
- 1 Watchers
- 0 Stars
- 227 Installations
- PHP
- 0 Dependents
- 0 Suggesters
- 0 Forks
- 1 Open issues
- 1 Versions
- 6 % Grown
Doctrine ORM Entity Finder
, (*1)
Boilerplate for building finder classes to be used with Doctrine ORM, (*2)
Class Example
<?php
namespace App;
use Kyoushu\DoctrineORMEntityFinder\Test\AbstractFinder;
use Doctrine\ORM\QueryBuilder;
class MyFinder extends AbstractFinder
{
protected $name;
public function getName()
{
return $this->name;
}
public function setName($name)
{
$this->name = $name;
return $this;
}
public function getParameterKeys()
{
return array('name');
}
public function getEntityClass()
{
return 'App\Entity\MyEntity';
}
public function configureQueryBuilder(QueryBuilder $queryBuilder)
{
$name = $this->name;
if($name){
$queryBuilder->andWhere('entity.name = :name');
$queryBuilder->setParameter('name', $name);
}
}
}
Usage Example
<?php
namespace App;
use Kyoushu\DoctrineORMEntityFinder\FinderFactory;
// Create finder factory
$factory = new FinderFactory($entityManager);
// Register finder class
$factory->registerFinder('my_finder', 'App\MyFinder');
// Create finder and configure it to find entities named Foo
$finder = $factory->createFinder('my_finder');
$finder->setPage(1)->setPerPage(5)->setName('Foo');
// Get search results
$result = $finder->getResult();
// Generate a URL using parameters from the finder
$url = $router->generate('search', $finder->getRouteParameters());
dev-master
9999999-dev
Boilerplate for building finder classes to be used with Doctrine ORM
Sources
Download
MIT
The Requires
The Development Requires
by
James Willans