Zaczynam uczyć się programowanie obiektowego i swoją naukę rozpocząłem od pisania gry przeglądarkowej, przedstawiam okrojony sposób pisania klas jaki stosuję i zwracam się z pytaniem do profesjonalistów czy idę w dobrym kierunku czy raczej powinienem pozostać przy programowaniu proceduralnym.
<?php
$gracz_id = 1;
$Gracz = new gracz($gracz_id,'tabela_gracz');
$id_przedmiotu = 1;
$Przedmioty = new przedmioty('tabela_przedmioty');
$Przedmioty -> set_id_przedmiotu($id_przedmiotu);
$cena_przedmiotu = $Przedmioty->get_cena_rzedmiotu($id_przedmiotu);
$ile_zostanie_kasy = $Gracz->kasa - $cena_przedmiotu;
if ($ile_zostanie_kasy>=0) {
$Gracz->kasa = $ile_zostanie_kasy;
$Gracz-> kup_przedmiot($id_przedmiotu);
$Przedmioty->set_przedmiot_kupiony();
}
echo $Gracz -> kasa;
class gracz {
private $table;
function __construct($id, $table) {
$this -> id_gracz= $id;
$this -> table = $table;
}
public function pobierz_dane(){
global $db;
$stats = $db -> Execute("SELECT `kasa` FROM ".$this -> table." WHERE `id_gracz`='".$this -> id_gracz."' ");
$this -> kasa= $stats -> fields['kasa'];
}
public function aktualizuj_kase(){
global $db;
$result = $db -> Execute("UPDATE ".$this -> table." SET `kasa`= '".$this -> kasa."' WHERE `id_gracz`='".$this -> id_gracz."' ");
}
public function kup_przedmiot($id){
global $db;
$result = $db -> Execute("UPDATE ".$this -> table." SET `id_przedmiotu`= '".$id."' , `kasa`= '".$this -> kasa."' WHERE `id_gracz`='".$this -> id_gracz."' ");
}
}
class przedmioty {
private $table;
public $id_przedmiotu;
function __construct($table) {
$this -> table = $table;
}
public function set_id_przedmiotu($id){
$this -> id_przedmiotu = $id;
}
public function get_cena_rzedmiotu(){
global $db;
$stats = $db -> Execute("SELECT `cena` FROM ".$this -> table." WHERE `id_przedmiot`='".$this -> id_przedmiotu."' AND `przedmiot_do_kupienia`='1' ");
return $stats -> fields['cena'];
}
public function set_przedmiot_kupiony(){
global $db;
$result = $db -> Execute("UPDATE ".$this -> table." SET `przedmiot_do_kupienia`= '0' WHERE `id_przedmiot`='".$this -> id_przedmiotu."' ");
}
}
?>