Witam, jestem początkujący w programowaniu obiektowym, wcześniej pisałem w strukturalnym. Chciałbym aby ktoś bardziej profesjonalny ocenił kod logowania w OOP napisany przeze Mnie. Opinie innych są dla mnie bardzo ważna. Nie korzystam z żadnego wzorca projektowego, po prostu chce przepisać kod strukturalny na obiektowy aby lepiej go zrozumieć.
<?php
class database{
private $db_name = 'db_name';
private $db_user = 'db_user';
private $db_pass = 'db_pass';
private $db_host = 'db_host';
private $connect;
function __construct(){
$this -> connect = new mysqli($this -> db_host,$this -> db_user,$this -> db_pass ,$this -> db_name);
$this -> stan();
$this ->kodowanie_zapytania();
}
private function stan(){
if($this -> connect -> connect_errno)
throw new Exception('Połączenie z serwerem bazy danych nie powiodło się');
}
private function kodowanie_zapytania(){
$wynik_zapytania=$this -> connect -> query ("SET NAMES 'utf8'");
if(!$wynik_zapytania)
throw new Exception('Ustawienie Kodowanie Zapytanie Nie Udało się');
}
public function query($zapytanie){
$zapytanie = $this -> connect -> query ($zapytanie);
if(!$zapytanie)
throw new Exception ('Wykonanie zapytania nie powiodło się');
return $zapytanie;
}
}
class UserAuthorizer {
private $connection;
function __construct(){
$this -> connection = new database();
}
public function logowanie($login, $password) {
$wynik_zapytania = $this-> connection -> query("SELECT password FROM users where login='".$login."'");
if(!$wynik_zapytania->num_rows)
throw new Exception('Podany uzytkownik nie istnieje '.$login);
$wiersz = $wynik_zapytania->fetch_assoc();
if(!password_verify ($password,$wiersz['password']))
throw new Exception("Hasła nie sa takie same");
}
}
try{
$egzemplarz = new UserAuthorizer();
$egzemplarz -> logowanie('login','haslo');
}
catch(Exception $e){
echo $komunikat=$e->getMessage(); }
?>