Hallo PHPler,
da ich immer mehr in OOP probiere meine Kenntnisse zu erweitern habe ich heute mal eine kleine Klasse geschrieben die einem die Arbeit abnimmt eine nächst höhere ID zu kreieren. Also in Form von auto_increment bei MySql zum Beispiel.
Dabei habe ich versucht 2 Fälle abzudecken.
1.) Fall
falls eine maximale ID aus der Datenbank kommt (per Abfrage mittels max() in MySql) dann kann dieser Wert als einzelner Wert übergeben werden. Hier habe ich das symbolisch mit einer fest vergebenen Zahl als Probe zum testen gemacht.
2.) Fall
es kann ein Array übergeben werden und es wird mitels der Funktion max() der höchste numerische Wert ermittelt.
Hier mal meine Codeteile, einmal die Klasse und dann der Aufruf und Einsatz der Klasse in beiden Fällen.
Und hier der Einsatz.
Ich habe das getestet und es funktioniert ordentlich.
Ich habe in dem Sinne keine Frage sondern würde gern eure Meinung dazu hören bzw. lesen. Habe ich eventuell etwas vergessen mit einzubinden was wichtig wäre oder ist das generell Quatsch so wie ich es gemacht habe oder oder oder. Halt eure Meinung würde ich gern lesen.
Vielen Dank für eure Zeit die ihr euch nehmt das mal anzusehen.
Ps.:
Es ist auch das erste mal das ich mit Exceptions arbeite, ich habe mich immer schwer damit getan.
da ich immer mehr in OOP probiere meine Kenntnisse zu erweitern habe ich heute mal eine kleine Klasse geschrieben die einem die Arbeit abnimmt eine nächst höhere ID zu kreieren. Also in Form von auto_increment bei MySql zum Beispiel.
Dabei habe ich versucht 2 Fälle abzudecken.
1.) Fall
falls eine maximale ID aus der Datenbank kommt (per Abfrage mittels max() in MySql) dann kann dieser Wert als einzelner Wert übergeben werden. Hier habe ich das symbolisch mit einer fest vergebenen Zahl als Probe zum testen gemacht.
2.) Fall
es kann ein Array übergeben werden und es wird mitels der Funktion max() der höchste numerische Wert ermittelt.
Hier mal meine Codeteile, einmal die Klasse und dann der Aufruf und Einsatz der Klasse in beiden Fällen.
PHP-Code:
<?php
/*
*
* ID Generator Klasse
*
*/
class IdGeneratorClass{
private $id;
private $lastId;
private $idArray;
public function __construct(){}
/*
*
* setzen einer id wenn es eine einzelne feststehende zahl ist
*
*/
public function setID($id){
$this->id = $id;
}
/*
*
* wenn die datzen aus einem array kommen mit prüfung ob übergebener parameter ein array ist
*
*/
public function setIdArray($idArr = array()){
if(!is_array($idArr)){
throw new Exception('this Parameter is not array');
} else {
$this->idArray = $idArr;
}
}
/*
*
* ermitteln des höchsten wertes des arrays
*
*/
public function searchMaxInt(){
$maxId = max($this->idArray);
$this->id = $maxId;
}
/*
*
* prüfen ob übergebene zahl eine integer zahl ist bevorsie freigegeben wird
*
*/
public function checkValidateInt(){
if(!is_int($this->id)){
throw new Exception('this ID ist not integer');
} else {
$this->lastId = $this->id;
}
}
/*
*
* erhaltene id um eins erhöhen
*
*/
public function countIdToNext(){
$this->lastId += 1;
}
/*
*
* fertige generierte id ausgeben für weiteres verarbeiten
*
*/
public function getId(){
return $this->lastId;
}
}
?>
PHP-Code:
<?php
error_reporting(E_ALL | E_STRICT);
ini_set('display_errors', TRUE);
require_once('IdGeneratorClass.php');
/*
*
* wenn ein array übergeben wird
*
*/
$newId_1 = new IdGeneratorClass();
$werte = array(1, 7, 78, 5);
$newId_1->setIdArray($werte);
$newId_1->searchMaxInt();
$newId_1->checkValidateInt();
$newId_1->countIdToNext();
$id_1 = $newId_1->getId();
echo $id_1.'<br><br>';
/*
*
* wenn eine einzelwert übergeben wird
*
*/
$newId_2 = new IdGeneratorClass();
$newId_2->setID(45);
$newId_2->checkValidateInt();
$newId_2->countIdToNext();
$id_2 = $newId_2->getId();
echo $id_2;
?>
Ich habe in dem Sinne keine Frage sondern würde gern eure Meinung dazu hören bzw. lesen. Habe ich eventuell etwas vergessen mit einzubinden was wichtig wäre oder ist das generell Quatsch so wie ich es gemacht habe oder oder oder. Halt eure Meinung würde ich gern lesen.
Vielen Dank für eure Zeit die ihr euch nehmt das mal anzusehen.
Ps.:
Es ist auch das erste mal das ich mit Exceptions arbeite, ich habe mich immer schwer damit getan.
Kommentar