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 117 118 119 120 121 122 123 124 125 126 
<?php
namespace Transactd;

use BizStation\Transactd\Transactd;
use BizStation\Transactd\Table;
use BizStation\Transactd\Nstable;
use Transactd\IOException;

/**
 * Abstract base class of server cursor
 */
abstract class TableIterator implements \Iterator
{
    protected $pos = 0;
    protected $lockBias;
    protected $cPtr;
    private $fetchMode;
    private $fetchClass;
    private $ctorArgs;

    public function __construct(Table $table, $lockBias)
    {
        $this->cPtr = $table->cPtr;
        $this->fetchMode = $table->fetchMode;
        $this->fetchClass = $table->fetchClass;
        $this->ctorArgs = $table->ctorArgs;
        $this->lockBias = $lockBias;
    }

    public function rewind()
    {
    }
    
    /**
     * Get current Record or Model.
     * @return \BizStation\Transactd\Record|object
     */
    public function current()
    {
        return table_fields($this->cPtr, $this->fetchMode, $this->fetchClass,  $this->ctorArgs);
    }
    
    /**
     * 
     * @return int
     */
    public function key()
    {
        return $this->pos;
    }
    
    /**
     * Returns the previous operation status.
     * @return bool
     */
    public function valid()
    {
        return (nstable_stat($this->cPtr) === 0);
    }
    
    /**
     * Checks the previous operation status and throw the IOException.
     * @throws \Transactd\IOException
     */
    public function validOrFail()
    {
        $stat = nstable_stat($this->cPtr);
        if ($stat !== 0) {
            throw new IOException(nstable_statMsg($this->cPtr), $stat);
        }
    }
        
    /**
     * Move to previous record.
     */ 
    abstract public function prev();
    
    /**
     * Move to next record.
     */ 
    abstract public function next();
   
    
    /**
     * Update current record with $model.
     * @param Transactd\Model $model
     * @throws IOException
     */
    public function update($model, $updateType = Nstable::changeCurrentNcc)
    {
        table_updateByObject($this->cPtr, $model, Nstable::changeCurrentNcc);
        $this->validOrFail();
    }
    
    /**
     * Insert the $model and move the current record.
     * @param Transactd\Model $model
     * @throws IOException
     */
    public function insert($model, $ncc = true)
    {
        table_insertByObject($this->cPtr, $model, $ncc);
        $this->validOrFail();
    }
    
    /**
     * Delete the current record.
     * @throws IOException
     */
    public function delete()
    {
        nstable_del($this->cPtr, false /*in_key*/);
        $this->validOrFail();
    }
    
    /**
     * 
     * @param int $mode Transactd::TIMESTAMP_ALWAYS | Transactd::TIMESTAMP_VALUE_CONTROL
     */
    public function setTimestampMode($mode)
    {
        nstable_setTimestampMode($this->cPtr, $mode);
    }
}

Transactd PHP ORM 1.5.0 API documentation generated by ApiGen