Hey zusammen,
ich habe jetzt einen statischen Schiffsverleih programmiert und möchte nun eure Meinung zu meinem OOP-Code wissen. Kritik und Verbesserungsvorschläge sind gerne gesehen.
Der Code:
PHP
<?php
class Schiffsverleih{
const Preis = 20.00;
private $kosten;
private $anzahlBesucher;
private $anzahlSchiffe = 6;
private $bootsnummer = array("1", "2", "3", "4", "5", "6");
private $buchungVon;
private $buchungBis;
private $buchungsZeit;
private $bookedTime;
private $day;
private $hour;
private $minute;
private $bucherBootNummer;
private $buchername;
public function __construct($buchername, $anzahlBesucher, $buchungVon, $buchungBis){
if(isset($buchername, $anzahlBesucher, $buchungVon, $buchungBis)){
$this->buchername = $buchername;
$this->anzahlBesucher = $anzahlBesucher;
$this->buchungVon = $buchungVon;
$this->buchungBis = $buchungBis;
Schiffsverleih::sumBuchungszeit();
Schiffsverleih::getTimeParts();
Schiffsverleih::getBootNummer();
Schiffsverleih::getAnzahlSchiffe();
Schiffsverleih::getPrice();
}
}
protected function sumBuchungszeit(){
$von = new DateTime($this->buchungVon);
$bis = new DateTime($this->buchungBis);
$rechnung = $bis->diff($von);
$buchungsZeit = $rechnung->format('%a:%H:%i');
$this->buchungsZeit = $buchungsZeit;
}
protected function getTimeParts(){
$buchungsZeit = explode(":" , $this->buchungsZeit);
$this->day = $buchungsZeit[0];
$this->hour = $buchungsZeit[1];
$this->minute = $buchungsZeit[2];
}
protected function getBootNummer(){
$zugewieseneBootnummer = rand(1,6);
if(in_array($zugewieseneBootnummer, $this->bootsnummer)){
unset($this->bootsnummer[$zugewieseneBootnummer]);
$this->bucherBootNummer = $zugewieseneBootnummer;
}
}
protected function getAnzahlSchiffe(){
$anzahlSchiffe = count($this->bootsnummer);
$this->anzahlSchiffe = $anzahlSchiffe;
return $this->anzahlSchiffe;
}
protected function getPrice(){
$day = (int)$this->day;
$hour = (int)$this->hour;
$minute = (int)$this->minute;
$bookedhours = null;
if($day > 0){
$hour += ($day * 24);
}
if($minute > 0){
$hour .= "." . $minute;
}
$bookedhours = $hour;
$price = self::Preis * $bookedhours;
$this->kosten = $price;
$this->bookedTime = $bookedhours;
}
public function showAllData(){
$output = "<article>
<h3>Ihre Buchung bei unserem Schiffsverleih</h3>
<p>Ihre Daten:</p>
<ul>
<li>Buchername: " . $this->buchername . "</li>
<li>Anzahl der Personen: " . $this->anzahlBesucher . "</li>
<li>Mietdauer: " . $this->bookedTime . " Stunden</li>
<li>Bootnummer: " . $this->bucherBootNummer . "</li>
<li>Preis: " . $this->kosten . " €</li>
</ul>
</article>
<hr>
";
return $output;
}
}
$schiffsverleih = new Schiffsverleih("Tom", 3, "11:15", "15:50");
$schiff1 = $schiffsverleih->showAllData();
echo $schiff1;
Alles anzeigen
Grüße,
Stef