Transactd PHP ORM 1.5.0
  • Namespace
  • Class

Namespaces

  • None
  • Transactd
    • boot
      • Laravel

Classes

  • Transactd\AggregateFunction
  • Transactd\boot\Laravel\TransactdLaravelServiceProvider
  • Transactd\CachedQueryExecuter
  • Transactd\Collection
  • Transactd\CollectionIterator
  • Transactd\DatabaseManager
  • Transactd\Model
  • Transactd\QueryAdapter
  • Transactd\QueryExecuter
  • Transactd\Relation
  • Transactd\TableForwordIterator
  • Transactd\TableIterator
  • Transactd\TableReverseIterator

Traits

  • Transactd\JsonSerializable

Exceptions

  • Transactd\IOException
  • Transactd\ModelNotFoundException
  • Transactd\ModelUserCancelException

Constants

  • INDENT

Functions

  • generateModel
  • get_singular
  • get_singular_dictionary
  • getPhpType
  • getTableDef
  • main
  • makeClass
  • makeClassDoc
  • makeHeader
  • perseAlias
  • perseDir
  • perseUri
  • printUSAGE
  • removeUnderscore
  • writeToFile
  1   2   3   4   5   6   7   8   9  10  11  12  13  14  15  16  17  18  19  20  21  22  23  24  25  26  27  28  29  30  31  32  33  34  35  36  37  38  39  40  41  42  43  44  45  46  47  48  49  50  51  52  53  54  55  56  57  58  59  60  61  62  63  64  65  66  67  68  69  70  71  72  73  74  75  76  77  78  79  80  81  82  83  84  85  86  87  88  89  90  91  92  93  94  95  96  97  98  99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 
<?php

namespace Transactd;

use BizStation\Transactd\Transactd;

if (Transactd::fieldValueMode() !== Transactd::FIELD_VALUE_MODE_VALUE) {
    Transactd::setFieldValueMode(Transactd::FIELD_VALUE_MODE_VALUE);
}
/**
 * @ignore
 */
function fsum($l, $r)
{
    return $l + $r;
}
/**
 * @ignore
 */
function fmax($l, $r)
{
    return  ($l >= $r) ? $l : $r;
}
/**
 * @ignore
 */
function fmin($l, $r)
{
    return  ($l <= $r) ? $l : $r;
}
/**
 * @ignore
 */
function favg($total, $size)
{
    return $total / $size;
}

class AggregateFunction
{
    private static $fetchMode;

    private static function prepare($rs, $column)
    {
        self::$fetchMode = $rs->fetchMode;
        $rs->fetchMode = Transactd::FETCH_RECORD_INTO;
        $fd = $rs->fielddefs()->indexByName($column);
        if ($fd === -1) {
            throw new \OutOfRangeException();
        }
        return $fd;
    }

    private static function calc($rs, $column, $func, $func2 = null)
    {
        $size = $rs->size();
        $ret = null;
        if ($size > 0) {
            $fd = self::prepare($rs, $column);
            $ret = $rs[0][$fd];
            for ($i = 1; $i < $size; ++$i) {
                $ret = $func($ret, $rs[$i][$fd]);
            }
            if ($func2 !== null) {
                $ret = $func2($ret, $size);
            }
            $rs->fetchMode = self::$fetchMode;
        }
        return $ret;
    }
    /**
     *
     * @param \BizStation\Transactd\Recordset $rs
     * @param string $column
     * @return int|double
     * @throw \OutOfRangeException
     */
    public static function sum($rs, $column)
    {
        return self::calc($rs, $column, 'Transactd\fsum');
    }
    /**
     *
     * @param \BizStation\Transactd\Recordset $rs
     * @param string $column
     * @return int|double
     * @throw \OutOfRangeException
     */
    public static function max($rs, $column)
    {
        return self::calc($rs, $column, 'Transactd\fmax');
    }
    /**
     *
     * @param \BizStation\Transactd\Recordset $rs
     * @param string $column
     * @return int|double
     * @throw \OutOfRangeException
     */
    public static function min($rs, $column)
    {
        return self::calc($rs, $column, 'Transactd\fmin');
    }
    /**
     *
     * @param \BizStation\Transactd\Recordset $rs
     * @param string $column
     * @return int|double
     * @throw \OutOfRangeException
     */
    public static function avg($rs, $column)
    {
        return self::calc($rs, $column, 'Transactd\fsum', 'Transactd\favg');
    }
}
Transactd PHP ORM 1.5.0 API documentation generated by ApiGen