brainsonic / doctrine-sqlserver-extensions

此包的最新版本(dev-master)没有可用的许可证信息。

为 Doctrine 提供的 SQL Server 特定扩展,使生活更轻松

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

This package is not auto-updated.

Last update: 2024-09-24 02:44:07 UTC


README

为 Doctrine 提供的 SQL Server 特定扩展,使生活更轻松。

此存储库的目的是在使用 SQL Server 时作为 Doctrine 库的测试平台。

仅支持 SQL Server 2005,因为许多功能需要 2000 年代之前不可用的函数,并且我希望避免使用重型预编译语句。

此存储库中的所有类仅在一些基本场景中进行了测试。

SQL Server Sql 输出遍历者

本意是为了替换 ORM 中提供的标准 SqlWalker。这避免了在 SQLServerPlatform.php 中使用 doModifyLimitQuery(),这仅使用正则表达式处理就极其复杂。

目前没有设置默认输出遍历者的方法,因此必须通过提示来指定遍历者。

<?php

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

分页器

分页器旨在成为 Doctrine 2.2.x 中包含的分页器的 1:1 替代品。

<?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";
}