Hallo Forum,
ich nutze "Simple MVC Framework" und erstelle übungsweise eine kleine, private Webanwendung. Alle Daten kommen aus der Datenbank.
Wenn ich nun alle Personen hole, kann ich sie im Template gleich ausgeben. Aber macht es nicht Sinn, diese Personen beispielsweise im Controller in einer Array festzuhalten oder soll ich getPersons() immer aufrufen, wenn ich die Personen brauche, obwohl sich nichts an den Daten geändert hat?
Folgende Klassen habe ich:
ich nutze "Simple MVC Framework" und erstelle übungsweise eine kleine, private Webanwendung. Alle Daten kommen aus der Datenbank.
Wenn ich nun alle Personen hole, kann ich sie im Template gleich ausgeben. Aber macht es nicht Sinn, diese Personen beispielsweise im Controller in einer Array festzuhalten oder soll ich getPersons() immer aufrufen, wenn ich die Personen brauche, obwohl sich nichts an den Daten geändert hat?
Folgende Klassen habe ich:
PHP-Code:
<?php
namespace Models;
use Core\Model;
use Helpers\Database;
use Core\Error;
class Person extends Model {
protected static $db;
protected static $table = 'person';
private $personID; // Wo fülle ich diese Felder am besten?
private $firstname;
private $lastname;
private $contact;
function __construct() {
parent::__construct ();
self::$db = Database::get ();
}
// hole alle vorhandenen Datensätze / Personen
public static function getPersons() {
return self::$db->select ( "SELECT personID, firstname, lastname FROM " . PREFIX . self::$table ); // hier gibt es eine Fehlermeldung
// soll hier eine foreach alle Datensätze in "new Person" packen?
}
// füge eine Person ein
public function insertPerson($data) {
if (is_array ( $data )) {
$this->db->insert ( PREFIX . $this->table, $data );
return $this->db->lastInsertId ( 'personID' );
} else {
// Error::display ( '$data is not an array.' ); // TODO: not in model
}
}
public function deletePerson($where) {
if (is_array ( $where )) {
$this->db->delete ( $this->table, $where );
}
}
// jede Person hat "Contact"... Soll ich das Objekt so holen?
public function getContact() {
if ($this->contact == null) {
$this->contact = new Contact ( $this->$personID ); // in dessen Konstruktor werden die Datensätze geholt.
}
return $this->contact;
}
}

Kommentar