Tworzenie klasy która jest tylko i wyłącznie nośnikiem danych i nie ma żadnych metod wykonujących jakieś czynności (oprócz konstruktora który ustawia wartość pól w klasie) ma rację bytu tylko w dwóch przypadkach:
- Kiedy jest bardzo dużo danych do przeniesienia (dużo pól w klasie)
- Kiedy klasa dziedziczy pola po jakiejś klasie.
W innych przypadkach tworzenie czegoś takiego nie ma sensu. Widzę, że zapisałeś funkcję dodawania danych do bazy poza klasą, a to powinno się znaleźć w klasie:
<?php
require 'database.php';
class offert {
public $name;
public $price;
public function __construct($name, $price) {
$this->name = $name;
$this->price = $price;
}
public function addPost(){
$pdo = Database::connect();
$sql = "INSERT INTO offert(id, name, price) values("."NULL, :name, :price)";
$q = $pdo->prepare($sql);
$q->bindValue(':name', $this -> name, PDO::PARAM_STR);
$q->bindValue(':price', $this -> price, PDO::PARAM_INT);
$q->execute();
}
}
$attr = new offert("lol", 1333);
echo $attr-> name;
$attr -> addPost();
Przy okazji poczytaj o setterach i getterach. Istnieje też fajna sztuczka programistyczna zwana fluent interface. Pamiętaj - obiektówka to twój przyjaciel!
Powodzenia w nauce!