
Öffentliche Methoden | |
| __call ($method, $parameters) | |
| Fängt Aufrufe wie 'getId()' oder 'setName()' o. | |
| __construct (array $data=array(), $readOnly=false) | |
| Setzt Daten. | |
| __get ($property) | |
| Einzelne Eigenschaft zurück geben. | |
| __isset ($property) | |
| Prüft, ob Eigenschaft vorhanden ist. | |
| __set ($property, $value) | |
| Setzt eine einzelne Eigenschaft. | |
| __sleep () | |
| Loeschen von Tabellenobjekten und Rueckgabe von Array. | |
| __unset ($property) | |
| Element der Daten des Objekts löschen. | |
| __wakeup () | |
| Deserialisierungroutine. | |
| clearData () | |
| Löscht Daten des Objekts, ohne die Tabellenzeilen zu beeinträchtigen. | |
| getData ($properties=null, $default=null) | |
| (Teile der) Daten zurück geben. | |
| hasData (array $properties=array(), $or=false, array $skip=array()) | |
| Prüft, ob übergeben Daten exisitieren. | |
| isReadOnly ($throw=false) | |
| Ob Objekt schreibgeschützt ist. | |
| isValid ($throw=false) | |
| Gültigkeit des Objekts. | |
| setData (array $data=array(), $overwrite=true) | |
| Setzt Daten des Objekts. | |
| setFromArray (array $data=array()) | |
| Ersetzt bisherige Daten durch übergbene. | |
| setReadOnly ($readOnly=true) | |
| Markiert das Objekt als (nicht länger) schreibgeschützt. | |
| setValid ($valid=true) | |
| Setzt die Gültigkeit (wenn z.B. | |
| toArray () | |
| Gibt alle Daten des Objekts als Array zurück. | |
Geschützte Methoden | |
| _checkValidity () | |
| Gültigkeit des Objekts prüfen. | |
| _cleanData ($data) | |
| Säubert einen Array von Daten. | |
| _resetValidity () | |
| Setzt Gültigkeit zurück. | |
Geschützte Attribute | |
| $_data = array() | |
| array, Daten des Objekts. | |
| $_propertiesMandatory = array() | |
| array, Notwendige Eigenschaften für eine grundlegende Gültigkeitsprüfung | |
| $_propertiesProtected = array() | |
| array, Geschützte Eigenschaften, können nicht über setData() gesetzt werden | |
| $_readOnly = false | |
| bool, ob Objekt schreibgeschützt ist | |
| $_valid = null | |
| bool, Gültigkeit (der Daten) des Objekts | |
Lange Beschreibung.
Definiert in Zeile 12 der Datei Abstract.php.
| Dsao_DataHandler_Abstract::__construct | ( | array $ | data = array(), |
|
| $ | readOnly = false | |||
| ) |
Setzt Daten.
| $data | array, Daten | |
| $readOnly | bool, schreibgeschützt? |
Definiert in Zeile 101 der Datei Abstract.php.
Benutzt setData() und setReadOnly().
00102 { 00103 // Damit man einfach isset() benutzen kann 00104 $this->_propertiesProtected = array_flip($this->_propertiesProtected); 00105 00106 $this->setData($data); 00107 00108 $this->setReadOnly($readOnly); 00109 }
| Dsao_DataHandler_Abstract::__call | ( | $ | method, | |
| $ | parameters | |||
| ) |
Fängt Aufrufe wie 'getId()' oder 'setName()' o.
ä. auf und leitet sie an die entsprechenden Methoden weiter.
| $method | string, Methodenname | |
| $parameters | array, Parameter |
Definiert in Zeile 48 der Datei Abstract.php.
Benutzt __set() und Dsao_Model_Abstract::underscore().
00049 { 00050 // 'getId' -> 'get_id' 00051 $methodUnderscored = Dsao_Model_Abstract::underscore($method); 00052 $parts = explode('_', $methodUnderscored, 2); 00053 00054 // 'get_id' -> 'get' 00055 $operation = (isset($parts[0]) ? $parts[0] : null); 00056 // 'get_id' -> 'id' 00057 $property = (isset($parts[1]) ? $parts[1] : null); 00058 00059 switch ($operation) 00060 { 00061 case 'get': 00062 case 'unset': 00063 case 'isset': 00064 { 00065 $methodName = '__'.$operation; 00066 00067 return $this->$methodName($property); 00068 } 00069 break; 00070 00071 case 'set': 00072 { 00073 // Falls kein Parameter übergeben wurde, null annehmen (->unset) 00074 if (!isset($parameters[0])) 00075 { 00076 $parameters[0] = null; 00077 } 00078 00079 $this->__set($property, $parameters[0]); 00080 00081 // Fließendes Interface bei set*()-Methoden 00082 return $this; 00083 } 00084 break; 00085 00086 default: 00087 { 00088 throw new Dsao_Exception(array( 00089 'message' =>'dsao_datahandler_abstract_method_not_found', 00090 'variables' => array('method' => $method))); 00091 } 00092 } 00093 }
| Dsao_DataHandler_Abstract::__get | ( | $ | property | ) |
Einzelne Eigenschaft zurück geben.
| $property | string, Eigenschaft |
Definiert in Zeile 116 der Datei Abstract.php.
Wird benutzt von Dsao_Db_Table_DataHandler_Abstract::_addWhere(), Dsao_Scroll::_delete(), Dsao_Scroll::delete(), Dsao_Scroll::getOtherUser(), Dsao_Scroll::isAuthor(), Dsao_Scroll::isDeleted(), Dsao_Scroll::isParticipated(), Dsao_Scroll::isRead(), Dsao_Scroll::isRecipient(), Dsao_Scroll::markRead(), Dsao_Scroll::refresh(), Dsao_Scroll::toArrayDecoded(), Dsao_Hero::update() und Dsao_User::update().
00117 { 00118 $property = (string) $property; 00119 00120 return isset($this->_data[$property]) ? 00121 $this->_data[$property] : null; 00122 }
| Dsao_DataHandler_Abstract::__isset | ( | $ | property | ) |
Prüft, ob Eigenschaft vorhanden ist.
| $property | string, Eigenschaft |
Definiert in Zeile 130 der Datei Abstract.php.
Wird benutzt von __unset(), _checkValidity(), _cleanData(), Dsao_Db_Table_DataHandler_Abstract::_getValidIdentifiers(), getData(), hasData(), Dsao_Scroll::isDeleted(), Dsao_Scroll::isRead(), setData() und Dsao_Scroll::toArrayDecoded().
| Dsao_DataHandler_Abstract::__set | ( | $ | property, | |
| $ | value | |||
| ) |
Setzt eine einzelne Eigenschaft.
| $property | string, Eigenschaft | |
| $value | mixed, Wert |
Definiert in Zeile 142 der Datei Abstract.php.
Benutzt __unset() und _resetValidity().
Wird benutzt von __call(), Dsao_Scroll::delete(), Dsao_Db_Table_DataHandler_Row_Abstract::exists() und Dsao_Scroll::markRead().
00143 { 00144 if (!$property) 00145 { 00146 return; 00147 } 00148 00149 // Ggf. Exception werfen 00150 $this->_resetValidity(true); 00151 00152 // Falls null übergeben wurde, löschen 00153 if (null === $value) 00154 { 00155 $this->__unset($property); 00156 } 00157 else 00158 { 00159 $this->_data[(string) $property] = $value; 00160 } 00161 }
| Dsao_DataHandler_Abstract::__sleep | ( | ) |
Loeschen von Tabellenobjekten und Rueckgabe von Array.
Wird aufgerufen, wenn Objekt serialisiert werden soll, loescht Tabellenobjekte und gibt Array mit zu sichernden Werten zurueck
Erneute Implementation in Dsao_Db_Table_DataHandler_Abstract.
Definiert in Zeile 171 der Datei Abstract.php.
00172 { 00173 // Wichtige Einstellungen sichern 00174 return array('_readOnly', '_data', '_valid'); 00175 }
| Dsao_DataHandler_Abstract::__unset | ( | $ | property | ) |
Element der Daten des Objekts löschen.
| $property | string, Element |
Definiert in Zeile 183 der Datei Abstract.php.
Benutzt __isset() und _resetValidity().
Wird benutzt von __set().
00184 { 00185 $this->_resetValidity(); 00186 00187 $property = (string) $property; 00188 00189 // Falls Element vorhanden 00190 if ($this->__isset($property)) 00191 { 00192 unset($this->_data[$property]); 00193 } 00194 }
| Dsao_DataHandler_Abstract::__wakeup | ( | ) |
Deserialisierungroutine.
Daten sind widerhergestellt, aber geschütze Eigenschaften müssen wieder in die richtige Form gebracht werden (vllt. sollte man sich hier was besseres ausdenken).
Definiert in Zeile 205 der Datei Abstract.php.
| Dsao_DataHandler_Abstract::_checkValidity | ( | ) | [protected] |
Gültigkeit des Objekts prüfen.
Erneute Implementation in Dsao_Db_Table_DataHandler_Abstract, Dsao_Hero, Dsao_Scroll und Dsao_User.
Definiert in Zeile 215 der Datei Abstract.php.
Benutzt __isset().
Wird benutzt von isValid() und setValid().
00216 { 00217 // Pflichtdaten durchgehen 00218 foreach ($this->_propertiesMandatory as $property) 00219 { 00220 // Falls Datum nicht vorhanden 00221 if (!$this->__isset($property)) 00222 { 00223 $this->_valid = false; 00224 00225 return false; 00226 } 00227 } 00228 00229 $this->_valid = true; 00230 00231 return true; 00232 }
| Dsao_DataHandler_Abstract::_cleanData | ( | $ | data | ) | [protected] |
Säubert einen Array von Daten.
Geschütze Eigenschaften werden entfernt, wenn sie bereits vorhanden sind.
| $data | array, Daten |
Definiert in Zeile 241 der Datei Abstract.php.
Benutzt __isset().
Wird benutzt von setData() und setFromArray().
00242 { 00243 foreach ($data as $property => $value) 00244 { 00245 // Falls geschütze Eigenschaft übergeben wurde und diese bereits 00246 // vorhanden, löschen 00247 if (isset($this->_propertiesProtected[$property]) 00248 && $this->__isset($property)) 00249 { 00250 unset($data[$property]); 00251 } 00252 } 00253 00254 return $data; 00255 }
| Dsao_DataHandler_Abstract::_resetValidity | ( | ) | [protected] |
Setzt Gültigkeit zurück.
Erneute Implementation in Dsao_Db_Table_DataHandler_Abstract.
Definiert in Zeile 262 der Datei Abstract.php.
Benutzt isReadOnly().
Wird benutzt von __set(), __unset(), clearData() und setData().
00263 { 00264 $this->isReadOnly(true); 00265 00266 $this->_valid = null; 00267 }
| Dsao_DataHandler_Abstract::clearData | ( | ) |
Löscht Daten des Objekts, ohne die Tabellenzeilen zu beeinträchtigen.
Definiert in Zeile 274 der Datei Abstract.php.
Benutzt _resetValidity().
Wird benutzt von setFromArray().
00275 { 00276 // Gültigkeit zurücksetzen 00277 $this->_resetValidity(); 00278 00279 // Daten löschen 00280 $this->_data = array(); 00281 00282 return $this; 00283 }
| Dsao_DataHandler_Abstract::getData | ( | $ | properties = null, |
|
| $ | default = null | |||
| ) |
(Teile der) Daten zurück geben.
Der erste Parameter kann entweder ein String sein, wenn nur ein Wert zurückgegeben werden soll (ist nur im Zusammenhang mit dem zweiten Parameter sinnvoll, da ansonsten auch __get() verwendet werden kann) oder als Array im folgenden Format:
array('property' => 'default', 'property2')
Sollte die Eigenschaft 'property' nicht existieren, wird der Wert 'default' genommen. Im zweiten Fall wurde kein Standardwert übergeben, sollte der Wert nicht existieren, wird $default zurück gegeben.
| $properties | array|string, zurückzugebene Daten | |
| $default | mixed, Standardwert |
Definiert in Zeile 303 der Datei Abstract.php.
Benutzt __isset().
Wird benutzt von Dsao_Uri_Http::getParameters().
00304 { 00305 // Falls alles zurueckgegeben werden soll 00306 if (!$properties) 00307 { 00308 return $this->_data; 00309 } 00310 00311 // Falls nur eine Eigenschaft zurueckgegeben werden soll 00312 if (!is_array($properties)) 00313 { 00314 // Falls Element nicht vorhanden 00315 if (!$this->__isset($properties)) 00316 { 00317 return $default; 00318 } 00319 00320 return $this->_data[$properties]; 00321 } 00322 00323 // Array mit Ergebnissen 00324 $results = array(); 00325 00326 // Array/Objekt durchgehen 00327 foreach ($properties as $property => $defaultValue) 00328 { 00329 // Falls Index numerisch 00330 if (is_numeric($property)) 00331 { 00332 $property = $defaultValue; 00333 $defaultValue = $default; 00334 } 00335 00336 // Falls Element nicht vorhanden 00337 if (!$this->__isset($property)) 00338 { 00339 $results[$property] = $defaultValue; 00340 continue; 00341 } 00342 00343 // Eigenschaft dem Ergebnisarray zuweisen 00344 $results[$property] = $this->_data[$property]; 00345 } 00346 00347 return $results; 00348 }
| Dsao_DataHandler_Abstract::hasData | ( | array $ | properties = array(), |
|
| $ | or = false, |
|||
| array $ | skip = array() | |||
| ) |
Prüft, ob übergeben Daten exisitieren.
Wurden keien Daten übergeben, wird zurück gegeben, ob Parameter vorhanden sind. Der dritte Parameter gibt die bei letzterer Prüfung zu ignorierende Felder an (immer vorhandene Daten o.ä.).
| $properties | array, Zu prüfende Eigenschaften (leeres Array -> prüfen, ob überhaupt Parameter vorhanden sind) | |
| $or | bool, ob nur einer oder alle Eigenschaften für das Erfüllen der Bedingung vorhanden sein müssen | |
| $skip | array, zu überspringende Eigenschaften (nur bei Prüfung, ob überhaupt Parameter vorhanden sind) |
Definiert in Zeile 365 der Datei Abstract.php.
Benutzt __isset().
Wird benutzt von Dsao_Uri_Http::hasParameters().
00366 { 00367 // Falls nichts übergeben wurde, nur prüfen, ob überhaupt Parameter 00368 // vorhanden sind 00369 if (empty($properties)) 00370 { 00371 $propertiesCount = count($this->_data); 00372 00373 // Zu überspringende Eigenschaften aus Zählung herausnehmen 00374 foreach ($skip as $property) 00375 { 00376 // Token soll nicht mitgezählt werden 00377 if ($this->__isset($property)) 00378 { 00379 $parametersCount--; 00380 } 00381 } 00382 00383 return (bool) $propertiesCount; 00384 } 00385 00386 // Eigenschaften durchgehen 00387 foreach ($properties as $property) 00388 { 00389 // Falls Eigenschaft vorhanden 00390 if ($this->__isset($property)) 00391 { 00392 // Falls nur einer der Eigenschaften vorhanden sein soll, hier 00393 // abbrechen 00394 if ($or) 00395 { 00396 return true; 00397 } 00398 } 00399 // Eigenschaft nicht vorhanden, also abbrechen, wenn alle Parameter 00400 // für das Erfüllen der Bedingung vorhanden sein müssen 00401 else if (!$or) 00402 { 00403 return false; 00404 } 00405 } 00406 00407 // Alle Eigenschaften vorhanden 00408 return true; 00409 }
| Dsao_DataHandler_Abstract::isReadOnly | ( | $ | throw = false |
) |
Ob Objekt schreibgeschützt ist.
| $throw | bool, ob Exception geworden werden soll, wenn Objekt schreibgeschützt ist. |
Definiert in Zeile 418 der Datei Abstract.php.
Wird benutzt von _resetValidity(), Dsao_Db_Table_DataHandler_Abstract::delete(), Dsao_Db_Table_DataHandler_Row_Abstract::exists(), Dsao_Db_Table_DataHandler_Abstract::insert(), Dsao_Scroll::markRead(), Dsao_Db_Table_DataHandler_Abstract::refresh() und Dsao_Db_Table_DataHandler_Abstract::update().
00419 { 00420 // Falls Objekt schreibgeschützt und Exception geworfen werden soll 00421 if ($this->_readOnly && $throw) 00422 { 00423 throw new Dsao_Exception('dsao_datahandler_abstract_readonly'); 00424 } 00425 00426 return (bool) $this->_readOnly; 00427 }
| Dsao_DataHandler_Abstract::isValid | ( | $ | throw = false |
) |
Gültigkeit des Objekts.
| $throw | bool, ob ggf. eine Exception geworfen werden soll |
Definiert in Zeile 435 der Datei Abstract.php.
Benutzt _checkValidity().
Wird benutzt von Dsao_Db_Table_DataHandler_Abstract::insert(), Dsao_Model_Scroll_Scroll::insertScroll(), Dsao_Scroll::markRead() und Dsao_Uri_Http::toString().
00436 { 00437 // Falls Gültigkeit noch nicht geprüft wurde oder erneut geprüft werden 00438 // soll 00439 if (null === $this->_valid) 00440 { 00441 $this->_checkValidity(); 00442 } 00443 00444 // Falls Objekt ungültig und Exception geworfen werden soll 00445 if (!$this->_valid && $throw) 00446 { 00447 throw new Dsao_Exception('dsao_datahandler_abstract_invalid'); 00448 } 00449 00450 return $this->_valid; 00451 }
| Dsao_DataHandler_Abstract::setData | ( | array $ | data = array(), |
|
| $ | overwrite = true | |||
| ) |
Setzt Daten des Objekts.
| $data | array, zu setzende Daten | |
| $overwrite | bool, ob neue Werte vorhandene überschreiben sollen (nur wenn $append true ist) |
Definiert in Zeile 461 der Datei Abstract.php.
Benutzt __isset(), _cleanData() und _resetValidity().
Wird benutzt von __construct(), Dsao_Db_Table_DataHandler_Abstract::_parseResult(), Dsao_Db_Table_DataHandler_Row_Abstract::refresh() und Dsao_Uri_Http::setParameters().
00462 { 00463 // Falls keine Daten übergeben wurden, abbrechen 00464 if (empty($data)) 00465 { 00466 return $this; 00467 } 00468 00469 // Gültigkeit zurück setzen 00470 $this->_resetValidity(); 00471 00472 // Daten säubern 00473 $data = $this->_cleanData($data); 00474 00475 // Zu setzende Eigenschaften durchlaufen 00476 foreach ($data as $property => $value) 00477 { 00478 // Falls Eigenschaft vorhanden und Überschreiben deaktiviert 00479 if (!$overwrite && $this->__isset($property)) 00480 { 00481 continue; 00482 } 00483 00484 // Falls null übergeben wurde, überspringen 00485 if (null === $value) 00486 { 00487 continue; 00488 } 00489 // Ansonsten normal setzen (kein __set(), um Zeit zu sparen) 00490 else 00491 { 00492 $this->_data[$property] = $value; 00493 } 00494 } 00495 00496 return $this; 00497 }
| Dsao_DataHandler_Abstract::setFromArray | ( | array $ | data = array() |
) |
Ersetzt bisherige Daten durch übergbene.
| $data | array, Daten |
Definiert in Zeile 505 der Datei Abstract.php.
Benutzt _cleanData() und clearData().
Wird benutzt von Dsao_Scroll::insert().
00506 { 00507 // Daten löschen 00508 $this->clearData(); 00509 00510 // Und neu setzen 00511 $this->_data = $this->_cleanData($data); 00512 00513 return $this; 00514 }
| Dsao_DataHandler_Abstract::setReadOnly | ( | $ | readOnly = true |
) |
Markiert das Objekt als (nicht länger) schreibgeschützt.
| $readOnly | bool |
Definiert in Zeile 522 der Datei Abstract.php.
Wird benutzt von __construct() und Dsao_Model_User_Profile::editProfile().
| Dsao_DataHandler_Abstract::setValid | ( | $ | valid = true |
) |
Setzt die Gültigkeit (wenn z.B.
Gültigkeitsprüfungen außerhalb durchgeführt wurden).
Es ist darauf zu achten, dass _checkValidity() niemals die Gültigkeit auf true setzen darf.
| $valid | bool, Gültigkeit |
Definiert in Zeile 539 der Datei Abstract.php.
Benutzt _checkValidity().
Wird benutzt von Dsao_Model_Scroll_Scroll::_checkScrollData() und Dsao_Scroll::refresh().
00540 { 00541 // Gültigkeitsprüfung durchführen 00542 $validityChecked = $this->_checkValidity(); 00543 00544 if (!$validityChecked && $valid) 00545 { 00546 throw new Dsao_Exception('dsao_datahandler_abstract_set_valid'); 00547 } 00548 00549 $this->_valid = (bool) $valid; 00550 00551 return $this; 00552 }
| Dsao_DataHandler_Abstract::toArray | ( | ) |
Gibt alle Daten des Objekts als Array zurück.
Definiert in Zeile 559 der Datei Abstract.php.
1.5.7.1