Models i MVC
Hey alle,Som sagt har jeg smidt et indlæg om MVC i PHP for 20 dage siden - og jeg synes jeg er kommet længere. Jeg har kodet et lille MVC framework udfra denne her guide: http://anantgarg.com/2009/03/13/write-your-own-php-mvc-framework-part-1/
Her har jeg så brugt metoden i url: /controller/action/query/string/her, som fungerer fint og godt. Har også downloadet ZendFramework, og lavet en lille test med det, hvor jeg har 3 sider: en forside, om mig side og kontakt side.
Men nu kommer mine spørgsmål til hvad Model er i MVC? Har hørt om "Skinny controllers, fat models", og det lyder fornuftigt - bare ærgeligt jeg ikke helt ved hvad Model i MVC er. Det lyder jo meget voldsomt, når Model jo er en vigtig del af MVC. Min teori om Model blev ødelagt, da jeg søgte videre på nettet om det. Jeg troede, som der også står i den tutorial jeg har linket det, at model var en forbindelse mellem databasen og applicationen. Så Model var data'en, som man trækker om fra en database. Men jeg har læst, det også kan være XML, andet data, og noget logik.
Hmm hmm tænker jeg så, og snakker så med en af mine venner om det. Han siger også, at i f.eks. sådan et her eksempel, skal teksten kodes ind i Model:
class Default_IndexController extends Zend_Controller_Action
{
public function indexAction()
{
if($_POST["name"] == "Alexander") $hi = "hej guttermand";
else $hi = "hej fremmede";
$this->view->hiText = $hi;
}
}
Lige en test med ZendFrameworket. Men der siger han man ikke skal hardcode det tekst ind i controlleren, men man skal f.eks. sige: $hi = $model["guttermand"] (bare eks.). Så tænker jeg bare: er model så ALT slags data? Hvordan vil I f.eks. mit lille eksempel ovenover? Har forstået hvad view er, og controlleren - men er ærlig talt usikker på Model. Burde jeg lave en model til den controller, der så hedder "Default_Model_Index", og så lave et par variabler 'public $guttermand = "Hej guttermand", $fremmede = "Hej fremmede";' ?
Kort opsummering: hvad er Model i PHP? Det ville være fint hvis I kunne illustrere nogen små koder evt.
Men håber I har lyst til at svare mig - den forvirrede dreng.
Hav en fortsat hyggelig dag.
