Meddelande

Minska
No announcement yet.

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

Minska
X
 
  • Filter
  • Klockan
  • Show
Clear All
new posts

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

    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

    PHP-kod:
    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

    PHP-kod:
    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?

    PHP-kod:
    class Inventory extends Controller
    {
        function 
    add_stock()
        {
            
    $this->model->add_stock();
        }

    PHP-kod:
    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.
    http://www.galnanyheter.com/ - Galna nyheter utöver det vanliga

    Skaffa Dropbox - Ett självklart val för att synkronisera filer mellan datorerna samt telefonen.

  • #2
    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...
    Johan Norberg, webbutvecklare.

    @GitHub

    Läs min blogg

    Kommentera

    Working...
    X