En funktion i modellen måste få data från en annan funktion i modellen. Bör man gå tillbaka till kontrollern eller anropa den direkt från modellen?
Anropa generate från kontrollern
class Inventory extends Controller {
function add_stock()
{
$generate = $this->model->generate(); //call generate from controller
$this->model->current_stock($generate);
}
}
class Model {
public function current_stock($generate)
{
//do something
}
public function generate()
{
//do something
return
}
}
ELLER LÖSNING 2
Anropa generate från modellen
class Inventory extends Controller {
function add_stock()
{
$this->model->current_stock();
}
}
class Model {
public function current_stock()
{
$generate = $this->generate(); //call generate from model
//do something
}
public function generate()
{
//do something
return
}
}
ELLER LÖSNING 3
Ett tredje alternativ är att anropa en funktion vars enda uppgift är att deligera till andra funktioner i modellen, dvs såhär. Hur ser det ut?
class Inventory extends Controller
{
function add_stock()
{
$this->model->add_stock();
}
}
class Model
{
public function current_stock($generate)
{
//do something with information from generate
}
public function generate()
{
//do something
return;
}
function add_stock()
{
$generate = $this->generate();
$this->current_stock($generate);
}
}
Alla lösningar fungerar men vilken är bästa lösningen?
OBS! Detta är bara kodexemel och kan innehålla något fel, bara för att illustrera hur jag menar.
Utan att veta precis vad current_stock() och generate() gör så skulle jag ändå luta åt alternativ 1. Anledningen är att det borde vara uppenbart av att läsa koden i Controller-klassen vad den gör, om man nu kan tänka sig en situation där man antingen anropar current_stock() eller generate().
Men om current_stock() alltid och endast använder sig av generate() så fungerar alternativ 2...
251 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e