Just nu i M3-nätverket
Gå till innehåll
Re-JeeP

Inlägg i databas (MVC)

Rekommendera Poster

Hej!

 

Hur skulle ni rekommendera att man uppdaterar databasen? Jag programmerar OOP i PHP5 och följer MVC design modell.

 

Att först ge Model information och sen bara anropa en funktion.

$Model->setSubject($subject);
$Model->setText($text);
$Model->setPost();

 

Eller att ge Model all information på en gång.

$Model->setPost($subject, $text);

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Pja, varför inte båda?

 

Men om metoderna skriver i en databas kanske det finns transaktioner inblandat. Om så kanske det spelar viss roll, t ex om man hinner göra en setSubject(...) innan programmet krashar, vad finns då sparat i databasen? Eller kanske inget skrivs förrän man gör setPost(...)?

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Tja, i det här fallet är naturligtvis det andra exemplet att föredra. Den första tillför inget och du får två extra funktionsanrop.

 

Men självklart ser saker annorlunda ut i verkligheten. Det finns inget som hindrar dig från att ha båda varianterna. Mao: Om man skickar med parametrar till setPost() så används de angivna värdena. Annars försöker setPost() använda existerande värden på $subject och $text i $Model.

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Okej...

 

Jag har ett annat exempel där jag inte kan bestämma mig för hur jag ska lösa det.

 

<?php

class DatabaseController
{
private $dbView;
private $dbModel;

public function __construct()
{
	$this->dbModel = DatabaseModel::getInstance();
	$this->dbModel->query("SELECT * FROM tabell");

	new DatabaseView($this->dbModel);
}
}

?>

 

<?php

class DatabaseController
{
public function __construct()
{
	$dbModel = DatabaseModel::getInstance();
	$dbModel->query("SELECT * FROM tabell");

	new DatabaseView($dbModel);
}
}

?>

 

I första exemplet sparas Model och View som instanser men inte i det andra. Det är ju egentligen onödigt att spara dom som instanser men det känns ändå inte rätt att göra så?

 

Tankar?

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Edit *

Lyckas inte editera mitt inlägg...

 

I första exemplet ska det vara

$this->dbView = new DatabaseView($this->dbModel);

istället för

new DatabaseView($this->dbModel);

 

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Skapa ett nytt konto på vårt forum. Det är lätt!

Registrera ett nytt konto

Logga in

Redan medlem? Logga in här.

Logga in nu



×
×
  • Skapa nytt...