Benutzerdefinierte MVC, wie Sie eine Renderfunktion für den Controller implementieren, damit View auf vom Controller festgelegte Variablen zugreifen kann

8

Ich füge neue Funktionen zu einer bestehenden Codebasis hinzu. Wie auch immer, das aktuelle Feature, das ich mache, sollte meiner Meinung nach in MVC sein. Die vorhandene Codebasis ist nicht MVC, aber das Feature, das ich implementiere, möchte, dass es MVC ist. Und ich möchte nicht einige bestehende MVC in die bestehenden Codes rollen.

Also, mein Problem ist ... Ich weiß nicht, eine Render-Funktion für die Controller-Klasse zu implementieren. Normalerweise muss der Controller in MVC einiges tun, mit einer Renderfunktion auf eine Variable setzen, und die View kann nun magisch auf die vom Controller gesetzte Variable zugreifen.

Ich habe keine Ahnung, wie ich das anders als global machen soll, was sich einfach falsch anfühlt. Ich sage mir immer wieder, dass es einen besseren Weg geben muss. Edit: Es ist global, nicht wahr? & gt; _ & gt; Wie machen die anderen Frameworks das?

Hier ist ein dummes Beispiel:

Controller:

%Vor%

Anzeigen:

%Vor%

Vielen Dank im Voraus!

    
mythicalprogrammer 16.11.2010, 06:52
quelle

1 Antwort

19

Ein sehr einfaches Beispiel:

%Vor%

Innerhalb von viewfile.php können Sie die Variable $foo verwenden. Jeder Code in der View-Datei hat Zugriff auf $this (die View-Instanz) und alle Variablen im Bereich innerhalb der render -Funktion. extract extrahiert den Inhalt des Arrays in lokale Variablen.

    
deceze 16.11.2010, 07:39
quelle

Tags und Links