Kezdőoldal » Számítástechnika » Weblapkészítés » MVC kész fejléc beszúrása?

MVC kész fejléc beszúrása?

Figyelt kérdés
A model view controller tervezési mintában hogyan lehet egy kész fejlécet beszúrni? Szeretném megtanulni, hogyan is működik az MVC, már egy kisebb alap blogmotort meg tudok írni, amely kilistázza a posztokat adatbázisból, és a posztoknak van külön oldaluk. Ahogy ezelőtt csináltam, mindig készítettem a fejlécnek egy külön php-fájlt és azt include-oltam be az egyes oldalakban, de itt csak index.php van. Arra gondoltam, hogy a template mappába csinálok egy main_header fájlt, ez tartalmazza a fejlécet. A viewen belül van egy template.php amiben van a template class. Ha ezt példányosítom akkor megadom neki a fájl elérésének útvonalát (amilyen templatet el akarok érni) és azzal visszatér. Ehhez gondoltam, hogy valahogy hozzáfűzöm még a fejlécet.

2015. okt. 24. 22:17
 1/3 A kérdező kommentje:
És nem, nem akarok kész frameworkot használni, mert előbb megszeretném tanulni, 15 éves vagyok sok időm van még :D
2015. okt. 24. 22:19
 2/3 A kérdező kommentje:

Jah, és nem az útvonallal tér vissza, hanem magával a fájl tartalmával.


class template {

protected $file;

protected $data = array();


public function __construct($file){

$this->file = $file;

}


public function assign($name,$value){

$this->data[$name] = $value;

}


public function render(){

$fullFile = PROJECT_ROOT."/templates/".$this->file.".phtml";

if(!file_exists($fullFile)){

throw new Exception("A template nem létezik: ".$this->file);

}

ob_start();

extract($this->data);

require($fullFile);


$content = ob_get_contents();

ob_end_clean();


return $content;

}

}

2015. okt. 24. 22:21
 3/3 Drone007 ***** válasza:

Az mvc alapú fejlesztéshez kicsit, sőt nagyon másként kell gondolkodnod, mint annó az include-olgatós módszernél.

Ahogy látom a rendszeredben is külön mappában vannak a template fájlok, ezek tartalmazzák a teljes layoutokat, amiket az adott oldalak hívnak be a paraméterezés alapján. Ezek a layoutok tartalmazzák a fejlécet is.

Mivel a fejléc maga a layout része, célszerű lenne, hogy elvetnéd a "külön fejléc" gondolkodást, és úgy tekintenél az egyes template-kre, mint komplett sablonokra, amik a teljes html struktúrát (aka layout) tartalmazzák.

Nézd át ezt a mappát, a phtml fájlokat, nézd meg hogyan van kialakítva egy-egy layout. Nem hiszem, hogy szükséges lenne külön fejléceket beszúrni. A programozott részeket amik a fejlécedben vannak (pl menü, login form, időjárásjelentés...) már ebbe a layoutba include-old vagy szúrd require_once utasítással.

2015. okt. 25. 07:17
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!