Zugriff auf Datenobjekte.
DataQueries erlauben den einfachen Zugriff auf Objekte
mittels verketteter Abfragen.
$a = array();
$a[] = array('k'=>'A');
$a[] = array('k'=>'B');
$a[] = array('k'=>'C');
$dataquery = new Alvine\Data\DataQuery(new Alvine\Data\ArrayWrapper($a));
$dataquery->where(function($k, $v) {
return $v['k']>'D'?true:false;
})->orderBy(function($a,$b) {
if($a['k']==$b['k']) return 0;
return ($a['k']<$b['k'])?1:-1;
})->each(function($k, $b) {
print($k.': '.$b['k']."; ");
});
Methods summary
public
|
#
__construct( Alvine\Data\DataQueryObject $data = null )
Erstellt neues DataQuery-Objekt
Erstellt neues DataQuery-Objekt
Parameters
- $data
- Neues DataQueryObjekt
|
public
Alvine\Data\DataQuery
|
#
select( Alvine\Data\DataSelect $selectionObject )
Die Select-Funktion wählt einzelne Datentypen aus
Wenn die Callbackfuntion keinen Wert oder null zurückgibt, dann
wird dieser Wert nicht dem Dataset zugewiesen.
Die Select-Funktion wählt einzelne Datentypen aus
Wenn die Callbackfuntion keinen Wert oder null zurückgibt, dann
wird dieser Wert nicht dem Dataset zugewiesen.
Parameters
- $selectionObject
- Objekt mit der Spaltenauswahl
Returns
|
public
Alvine\Data\DataQuery
|
#
where( Closure $callback )
Bedingungen
Reduziert die im DataQuery gespeicherten Einträge um
die, die nicht mit der where-Bedingung übereinstimmen.
$query = new Alvine\Data\DataQuery(array('a','b','c'));
print_r($query->where(function($k, $v){ return $v=='a'; }));
$result = $this->object->where(function($k, $v) {
if($k==0) return false;
return true;
})->getDataObject();
Parameters
- $callback
- Funktion mit Filter
Returns
|
public
Alvine\Data\DataQuery
|
#
skip( integer $count )
Überspringen
Überspringe die ersten $count elemente und setzt die
interne Datenmenge auf das Ergebnis
$result = $dataQuery->skip(1)->getDataObject();
Parameters
- $count
- Anzahl der Positionen
Returns
|
public
Alvine\Data\DataQuery
|
#
take( integer $count )
Anwenden
Setzt den Wert des DataQuery auf die Elemente 0 - $count.
Parameters
- $count
- Anzahl der Elemente
Returns
|
protected
Alvine\Data\DataQuery
|
#
filter( integer $start, integer $length = 0, Closure $callback = null )
Callback-Filter
Aufruf einer Callbackfunktion und Filterung aller Elemente.
Die Callbackfunktion kann z.B. eine Lambdafunktion sein.
Parameters
- $start
- erster Eintrag
- $length
- letzer Eintrag, wenn <1 dann alle
- $callback
- Callbackfunktion
Returns
|
public
|
#
__clone( )
Interne Hook für das Clonen des Objektes. Wenn das zu klonende Objekt
bereits eine eindeutige ID hat, dann wird auch für das neue Objekt eine
eindeutige ID erstellt.
Interne Hook für das Clonen des Objektes. Wenn das zu klonende Objekt
bereits eine eindeutige ID hat, dann wird auch für das neue Objekt eine
eindeutige ID erstellt.
Alvine-Objekte werden rekursive geclont, so das ein vollständiger Clone vorhanden ist.
Overrides
|
public
Alvine\Data\DataQuery
|
#
append( mixed $value )
Ein Datenobjekt anhängen
Parameters
- $value
- Anzuhängender Wert
Returns
|
public
Alvine\Data\DataQuery
|
#
unique( )
Entfernt alle doppelten Objekte. Dabei wird der Inhalt
der Einträge per serialize verglichen.
Entfernt alle doppelten Objekte. Dabei wird der Inhalt
der Einträge per serialize verglichen.
Returns
|
public
array
|
#
getDataObject( )
Gibt den Inhalt des Objekts zurück.
Gibt den Inhalt des Objekts zurück.
Returns
array Aktueller Inhalt als Array
|
public
Alvine\Data\DataQuery
|
#
first( )
Verwendet nur noch den ersten Datensatz
Verwendet nur noch den ersten Datensatz
Returns
|
public
integer
|
#
getCount( )
Gibt die Anzahl der Elemente zurück.
Gibt die Anzahl der Elemente zurück.
Returns
integer Anzahl der Datenelemente
|
public
integer
|
#
count( )
Implementierung des Countable-Interface. Dadurch kann
count($dataquery) verwendet werden. Verwendet ->getCount()
Implementierung des Countable-Interface. Dadurch kann
count($dataquery) verwendet werden. Verwendet ->getCount()
Returns
integer Anzahl der Datenelemente
Implementation of
Countable::count()
|
public
Alvine\Data\DataQuery
|
#
last( )
Das letzte Element im DataQuery verwenden
Das letzte Element im DataQuery verwenden
Returns
|
public
Map
|
#
each( Closure $callback )
Durchläuft alle Einträge des DataQuery und ruft die entsprechende Funktion
auf. Besonders in Zusammenhang mit den anonymen Funktionen lassen sich so
sehr effiziente Konvertierungen durchführen.
$query = new Alvine\data\DataQuery(array('a'=>'Auto','b'=>'Boot','c'=>'Flugzeug'));
$query->each(function($k, $v) { return $v.'...'; });
Die Werte werden dann jeweils um ... ergänzt: Auto... Boot... und Flugzeug ...
Wenn die Callbackfuntion keinen Wert bzw. null zurückgibt, dann
wird dieser Wert nicht dem Dataset zugewiesen.
Durchläuft alle Einträge des DataQuery und ruft die entsprechende Funktion
auf. Besonders in Zusammenhang mit den anonymen Funktionen lassen sich so
sehr effiziente Konvertierungen durchführen.
$query = new Alvine\data\DataQuery(array('a'=>'Auto','b'=>'Boot','c'=>'Flugzeug'));
$query->each(function($k, $v) { return $v.'...'; });
Die Werte werden dann jeweils um ... ergänzt: Auto... Boot... und Flugzeug ...
Wenn die Callbackfuntion keinen Wert bzw. null zurückgibt, dann
wird dieser Wert nicht dem Dataset zugewiesen.
Parameters
- $callback
- Funktion die aufgerufen wird
Returns
Map
|
public
Alvine\Data\DataQuery
|
#
orderBy( Closure $callback )
Diese Funktion sortiert die Datenmenge
Diese Funktion sortiert die Datenmenge
Parameters
- $callback
- Sortierfunktion
Returns
|
public
Alvine\Data\DataQuery
|
#
groupBy( Closure $callback )
Diese Funktion gruppiert die Datenmenge
und liefert ein Gruppenobjekt zurück.
Diese Funktion gruppiert die Datenmenge
und liefert ein Gruppenobjekt zurück.
$group = $this->object->groupBy(function($k,$v) {
return $k<18?'Minderjährig':'Erwachsen';
});
$group['Minderjährig'] = array(14=>'Hans', '12'=>'Sepp');
$group['Erwachsen'] = array(21=>'Johann', '52'=>'Marta');
Parameters
- $callback
- Sortierfunktion
Returns
|
public
|
#
rewind( )
Implementierung des Iteration Interfaces.
Internen Zähler zurücksetzen.
Implementierung des Iteration Interfaces.
Internen Zähler zurücksetzen.
Implementation of
Iterator::rewind()
|
public
string
|
#
current( )
Implementierung des Iteration Interfaces.
Implementierung des Iteration Interfaces.
Returns
string aktuelles String-Objekt
Implementation of
Iterator::current()
|
public
string
|
#
key( )
Implementierung des Iteration Interfaces.
Implementierung des Iteration Interfaces.
Returns
string Keys
Implementation of
Iterator::key()
|
public
mixed
|
#
next( )
Implementierung des Iteration Interfaces.
Implementierung des Iteration Interfaces.
Returns
mixed nächster Eintrag
Implementation of
Iterator::next()
|
public
boolean
|
#
valid( )
Implementierung des Iteration Interfaces.
Implementierung des Iteration Interfaces.
Returns
boolean Status der Iteration
Implementation of
Iterator::valid()
|
public
|
#
offsetSet( mixed $offset, mixed $value )
Implementierung des ArrayAccess Interfaces.
Implementierung des ArrayAccess Interfaces.
Parameters
- $offset
- Schlüssel
- $value
- Wert
Implementation of
ArrayAccess::offsetSet()
|
public
boolean
|
#
offsetExists( mixed $offset )
Implementierung des ArrayAccess Interfaces.
Implementierung des ArrayAccess Interfaces.
Parameters
Returns
boolean Ergebnis
Implementation of
ArrayAccess::offsetExists()
|
public
boolean
|
#
offsetUnset( mixed $offset )
Implementierung des ArrayAccess Interfaces.
Implementierung des ArrayAccess Interfaces.
$dataQuery = new DataQuery();
unset($dataquery[1]);
Parameters
Returns
boolean Immer true
Implementation of
ArrayAccess::offsetUnset()
|
public
mixed
|
#
offsetGet( mixed $offset )
Implementierung des ArrayAccess Interfaces.
Implementierung des ArrayAccess Interfaces.
Parameters
Returns
mixed Wert
Implementation of
ArrayAccess::offsetGet()
|