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

Behöver en funktion från modellen i modellen. Anropa från controller eller model?

Rekommendera Poster

Martin79
Postad (redigerade)
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.

Redigerad av Martin79

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Phenomen
Postad (redigerade)

Det är samma sak som att säga "Jag vill ge mig pengar för att köpa hamburgare"

 

kan du inte göra typ

 

$this->model->calculate_stop() och inuti det anropa generate() ?

Redigerad av Phenomen

Dela detta inlägg


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

Sen lägger du av med att jobba efter Bill Gates :)

 

Döp dina modeller efter vad dem står för.

Dela detta inlägg


Länk till inlägg
Dela på andra webbplatser
Martin79
Postad (redigerade)

Det är samma sak som att säga "Jag vill ge mig pengar för att köpa hamburgare"

 

kan du inte göra typ

 

$this->model->calculate_stop() och inuti det anropa generate() ?

Förstår inte din ironi med hamburgare ;)

 

Känns som att ditt förslag påminner om mitt exempel 3? Eller ex 2? Stämmer det?

 

Döper MS sina modeller såhär? Hade jag ingen aning om ;)

Redigerad av Martin79

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...