PHP code example of wiredmedia / doctrine-extensions
1. Go to this page and download the library: Download wiredmedia/doctrine-extensions library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
wiredmedia / doctrine-extensions example snippets
$classLoader = new \Doctrine\Common\ClassLoader('DoctrineExtensions', "/path/to/extensions");
$classLoader->register();
use DoctrineExtensions\Paginate\Paginate;
$query = $em->createQuery($dql);
$count = Paginate::getTotalQueryResults($query); // Step 1
$paginateQuery = Paginate::getPaginateQuery($query, $offset, $limitPerPage); // Step 2 and 3
$result = $paginateQuery->getResult();
$count = Paginate::getTotalQueryResults($query); // Step 1
$result = $query->setFirstResult($offset)->setMaxResults($limitPerPage)->getResult(); // Step 2
namespace MyProject\Tests;
use DoctrineExtensions\PHPUnit\OrmTestCase
class EntityFunctionalTest extends OrmTestCase
{
protected function createEntityManager()
{
return Doctrine\ORM\EntityManager::create(..);
}
protected function getDataSet()
{
return $this->createFlatXmlDataSet(__DIR__."/_files/entityFixture.xml");
}
}
namespace MyProject\Tests;
use DoctrineExtensions\PHPUnit\Event\EntityManagerEventArgs,
DoctrineExtensions\PHPUnit\OrmTestCase,
Doctrine\ORM\Tools\SchemaTool,
Doctrine\ORM\EntityManager;
class SchemaSetupListener
{
public function preTestSetUp(EntityManagerEventArgs $eventArgs)
{
$em = $eventArgs->getEntityManager();
$schemaTool = new SchemaTool($em);
$cmf = $em->getMetadataFactory();
$classes = $cmf->getAllMetadata();
$schemaTool->dropDatabase();
$schemaTool->createSchema($classes);
}
}
class EntityFunctionalTest extends OrmTestCase
{
protected function createEntityManager()
{
$eventManager = new EventManager();
$eventManager->addEventListener(array("preTestSetUp"), new SchemaSetupListener());
return Doctrine\ORM\EntityManager::create(.., $eventManager);
}
}
namespace MyProject;
use DoctrineExtensions\Versionable\Versionable;
class BlogPost implements Versionable
{
// blog post API
}
$eventManager = new EventManager();
$eventManager->addEventSubscriber(new VersionListener());
$em = EntityManager::create($connOptions, $config, $eventManager);
$versionManager = new VersionManager($em);
$versions = $versionManager->getVersions($blogPost);
$versionManager = new VersionManager($em);
$versionManager->revert($blogPost, 100);
$em->flush();