Gå til innhold

På tide å bruke PHP i template-filene!


Anbefalte innlegg

Hei,

 

OK, jeg har gått igjennom det meste av templatessystemer som finnes i PHP. Jeg er luta lei av det, det er alltid noe som lager vanvittig mye trøbbel ved bruk av det. Ikke minst lager det en god del kode. Så jeg bestemte meg for at jeg skal kun bruke PHP i tpl filene mine. Ikke noe short-tags siden det ryktes at det dør ut i PHP6?

 

Det jeg lurer på hvordan jeg skal gjøre dette på best mulig måte. Jeg har ikke lyst å drive med en metode lenge så plutselig se at det fantes en bedre må å gjøre det på, så jeg spør først nå jeg.

 

Slik gjør jeg det nå:

 

Har en PHP side nå som skal printes ut:

PHP
 <?php

 

function incTpl($file) {

global $tpl;

require_once('./templates/' $file '.php');

$tpl '';

 $tpl = array();

}

 

$tpl = array();

 

$tpl['data'] = array(1234567);

$tpl['data2'] = 'jeg er data som skal i tpl!';

 

incTpl('dataside');

 

?>

 

Her blir da fila som vi inkluderer:

PHP
 <p><?php echo $tpl['data2']; ?></p>

 

<ul>

<?php foreach($tpl['data'] as $number) { ?>

<li><?php echo number?></li>

<?php ?>

</ul>

 

Jeg har ikke peiling på om dette er en god måte, for det kan jo hende det finnes bedre måter. Men hva anbefaler dere? Vet dere om noe scripts som bruker dette prinsippet som jeg kan ta en titt på?

 

Tusen takk for hjelp!

Lenke til kommentar
Videoannonse
Annonse
Jeg har ikke peiling på om dette er en god måte, for det kan jo hende det finnes bedre måter. Men hva anbefaler dere? Vet dere om noe scripts som bruker dette prinsippet som jeg kan ta en titt på?

Savant er en templatemotor som bruker PHP selv som språk. Derfor trenger det heller ikke å kompilere templatene, selv om dette lett kan skrives selv om du skulle føle deg mer komfortabel med det.

Lenke til kommentar
Ikke noe short-tags siden det ryktes at det dør ut i PHP6?

short tags forsvinner ikke i php6.

 

 

Hvorfor ikke gå over til et rammeverk som følger MVC dette er mye bedre enn å stresse med template systemer som også går tregere enn ren php.

 

MVC står for Model - View - Controller. Du vil da få en mappe struktur som f.eks

-System

-Application

--Models

--Views

--Controllers

 

I mappen models legger du koder som kommuniserer med databaser. I mappen views koder du design. I mappen controllers koder du funksjoner som kommuniserer med designet ditt og dine models.

 

Du kan og droppe models og kun bruke views og controllers, du koder da database spørringer i controllers isteden. Jeg anbefaler http://www.codeigniter.com/ ta deg en kikk på video tutorialene på siden der så får du mer innblikk i hvordan MVC virker

Lenke til kommentar
Hvorfor ikke gå over til et rammeverk som følger MVC dette er mye bedre enn å stresse med template systemer som også går tregere enn ren php.

 

Jeg har bare brukt mvc med templates, noe jeg syns fungerer utmerket. Jeg er ikke kjent med mvc uten bruk av templates, men ble veldig nysgjerrig her nå. Hvordan klarer du å skille presentasjon og logikk uten bruk av php-kode i view? Send gjerne med et eksempel.

Lenke til kommentar
Ehm, det er vel models som er grunnlaget for databasespøringane..?

 

EDIT: Uansett er MVC-rammeverk å foretrekke. :)

7475058[/snapback]

 

Joda models er for spørringer. Jeg skrev det, men skrev at man kan drope models og bruke controllers.

 

Jeg har bare brukt mvc med templates, noe jeg syns fungerer utmerket. Jeg er ikke kjent med mvc uten bruk av templates, men ble veldig nysgjerrig her nå. Hvordan klarer du å skille presentasjon og logikk uten bruk av php-kode i view? Send gjerne med et eksempel.

 

Det blir jo litt php, men det er minimalt. La oss si du har laget en controller som skal sette sidens tittel. Denne heter main.php

PHP
<?php

 

class Main extends Controller {

 

function Main()

{

parent::Controller();

}

 

function index()

{

 

$data['title'] = "Siden Tittel ";

 

$this->load->view('main'$data);

}

}

?>

 

Du lager en view som heter main.php som inneholder.

 

<html>
<head>
<title><?=$title;?></title>
</head>
<body>
</body>
</html>

 

Dette var bare et enkelt eksempel

Endret av kylefj
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...