Cześć, czy mógłby ktoś ocenić czy mój kod php jest, poprawny ? Oczywiście poniższy kod działa tak jak tego oczekuje, ale po prostu chce się dowiedzieć czy poprawnie programuje, czy coś mógłbym lepiej zrobić, inaczej zmienne ponazywać itp. Z góry dzięki.
klasa odpowiedzialna za walidację awatara
class AvatarValidation
{
private $data;
private $database;
private $error = '';
public function __construct($database, $data)
{
$this->database = $database;
$this->data = $data;
}
public function getError()
{
return $this->error;
}
public function ValidateAvatar()
{
$array_extension = array("jpg", "png", "jpeg");
$val = htmlspecialchars($this->data['avatar']);
$ext = pathinfo($val, PATHINFO_EXTENSION);
if(empty($val))
{
return $this->error = "Wybierz zdjęcie";
}
else if(! in_array($ext, $array_extension) && !(empty($val)))
{
return $this->error = "Nieprawidłowe rozszerzenie pliku";
}
}
}
?>
klasa odpowiedzialna za dodawanie zdjęcia
class PhotoAdding
{
private $database;
private $data;
private $PhotoValidation;
public function __construct($database, $data, $PhotoValidation)
{
$this->database = $database;
$this->data = $data;
$this->PhotoValidation = $PhotoValidation;
}
public function AddPhoto()
{
if(empty($this->PhotoValidation->getError()))
{
$id = htmlspecialchars($_SESSION['user_id']);
$photo = htmlspecialchars($this->data['photo']);
$date = date('Y-m-d');
$query = $this->database->ConnectDatabase()->prepare("INSERT INTO photo (`user_id`, `photo`, `date_to_add`) VALUES ((SELECT user_id from user where user_id = :id), :photo, :date)");
$query->bindParam(':id', $id, PDO::PARAM_INT);
$query->bindParam(':photo', $photo, PDO::PARAM_STR);
$query->bindParam(':date', $date, PDO::PARAM_STR);
$query->execute();
}
}
}