brainsonic/doctrine-sqlserver-extensions

There is no license information available for the latest version (dev-master) of this package.

SQL Server specific extensions for Doctrine to make life easier

dev-master 2016-01-14 20:56 UTC

This package is not auto-updated.

Last update: 2024-12-17 03:42:27 UTC


README

SQL Server specific extensions for Doctrine to make life easier.

The purpose of this repository is to act as a testbed for Doctrine libraries when using SQL Server.

Only SQL Server 2005 will be supported, as many of the features require functions that were not available in 2000, and I wish to avoid the use of heavy prepared statements.

All of the classes in this repo have only been tested in basic scenarios.

SQL Server Sql Output Walker

This aims to be a drop-in replacement for the standard SqlWalker provided in the ORM. This avoids using doModifyLimitQuery() in SQLServerPlatform.php which is incredibly complex to handle with regex alone.

There is currently no way to set a default output walker, so the walker must be specified via a hint

<?php

$query->setHint(Query::HINT_CUSTOM_OUTPUT_WALKER, 'DoctrineSqlServerExtensions\ORM\Query\AST\SQLServerSqlWalker');

Paginator

The Paginator aims to be a 1:1 replacement for the Paginator included in Doctrine 2.2.x

<?php
use DoctrineSqlServerExtensions\ORM\Tools\Pagination\Paginator;

$dql = "SELECT p, c FROM BlogPost p JOIN p.comments c";
$query = $entityManager->createQuery($dql)
                       ->setFirstResult(0)
                       ->setMaxResults(100);

$paginator = new Paginator($query, $fetchJoinCollection = true);

$c = count($paginator);
foreach ($paginator as $post) {
    echo $post->getHeadline() . "\n";
}