Pagina 1 van 1

[php] Te simpele template-system

BerichtGeplaatst: 10 dec 2008 16:43
door frizzy
Eigenlijk mag ik dit geen template parser noemen, maar ik vind hem wel geniaal. Gebruik altijd zoiets, is lekker snel en werkt perfect voor wat ik er van verwacht.
Code: Selecteer alles
<?php
   // Simpele Template-Dinges...
   $inpage   =   false;
   function viewer($name=false, $vars=array()){
      global $inpage;
      if($name !== false){
         if(@fopen('viewers/'.$name.'.tpl.php', 'r')){
            
            foreach($vars as $v=>$g){
               $$v   =   $g;
               define(strtoupper(str_replace(' ','_', $v)), $g);
            }
            
            if($inpage == false){
               include('viewers/header.tpl.php');
               $inpage   =   true;
            }
            include('viewers/'.$name.'.tpl.php');
            if($inpage == false){
               include('viewers/footer.tpl.php');
            }
            
            return true;
         }
         else{
            return false;
         }
      }
      else{
         return false;
      }
   }
?>


Even snel gerateld omdat ik me verveelde, kan dus foutje in zitten

Re: [php] Te simpele template-system

BerichtGeplaatst: 10 dec 2008 17:45
door libia
tip: pas op met global! als je niet oplet kunnen er onverwachte dingen gebeuren.. in princiepe heb je nooit global nodig ;)
tip: gebruik nooit @ (@fopen()), gebruik gewoon een goede controle!

Re: [php] Te simpele template-system

BerichtGeplaatst: 10 dec 2008 20:12
door Derk
als je fopen in een if zet met een @ ervoor is je controle wat mij betreft genoeg hoor. Anders zou je moeten gaan kijken of het bestand bestaat voor je fopen draait. Nu zit die check gewoon bij fopen in.

Global is in de niet-OOP omgeving anders wel een verdraaid handige optie.

Re: [php] Te simpele template-system

BerichtGeplaatst: 10 dec 2008 20:44
door frizzy
Afbeelding

Re: [php] Te simpele template-system

BerichtGeplaatst: 10 dec 2008 21:13
door Derk
frizzy schreef:[ img ]

Komt me vaag bekend voor...

Re: [php] Te simpele template-system

BerichtGeplaatst: 10 dec 2008 21:22
door frizzy
Geniaal gemaakt vriend ;)

Re: [php] Te simpele template-system

BerichtGeplaatst: 10 dec 2008 23:12
door libia
Derk schreef:als je fopen in een if zet met een @ ervoor is je controle wat mij betreft genoeg hoor. Anders zou je moeten gaan kijken of het bestand bestaat voor je fopen draait. Nu zit die check gewoon bij fopen in.

Global is in de niet-OOP omgeving anders wel een verdraaid handige optie.

@ is foten onderdrukken, maar fouten moet je voorkomen, niet mishandelen :)

En ja global kan handig zijn, maar - zeker bij een snippet - moet de gene die het script gebruikt goed oppassen en op blijven letten, daarom lijkt het me bij een snippet handig om dit zo min mogelijk te gebruiken ;)

Re: [php] Te simpele template-system

BerichtGeplaatst: 11 dec 2008 11:02
door frizzy
Ik snap niet wat er zo moeilijk is aan een global, sorry. En als hij de pagina niet kan vinden geeft hij naast false terug ook een error, maar dit staat niet netjes. Daarom onderdruk ik hem

Re: [php] Te simpele template-system

BerichtGeplaatst: 11 dec 2008 23:05
door Derk
frizzy schreef:En als hij de pagina niet kan vinden geeft hij naast false terug ook een error, maar dit staat niet netjes. Daarom onderdruk ik hem

Wat je dus moet doen is eerst kijken of de file bestaat voordat je fopen gebruikt. Dan krijg je nooit een error die je moet onderdrukken. Maargoed, ik geef je groot gelijk dat je deze oplossing toepast. Doe ik ook altijd!

Re: [php] Te simpele template-system

BerichtGeplaatst: 12 dec 2008 21:24
door Stefan
Derk schreef:Wat je dus moet doen is eerst kijken of de file bestaat voordat je fopen gebruikt.
Kan dat gewoon met file_exists()?

Re: [php] Te simpele template-system

BerichtGeplaatst: 13 dec 2008 00:26
door libia
Steef Keijzer schreef:
Derk schreef:Wat je dus moet doen is eerst kijken of de file bestaat voordat je fopen gebruikt.
Kan dat gewoon met file_exists()?

Is_file() geloof ik

Re: [php] Te simpele template-system

BerichtGeplaatst: 13 dec 2008 12:30
door Remi
Het doet ongeveer hetzelfde.
Maar het grote verschil is dat is_file alleen naar de bestanden kijkt, en file_exists ook de mappen mee neemt.

Re: [php] Te simpele template-system

BerichtGeplaatst: 13 dec 2008 20:01
door libia
Remi schreef:Het doet ongeveer hetzelfde.
Maar het grote verschil is dat is_file alleen naar de bestanden kijkt, en file_exists ook de mappen mee neemt.

Dat lijkt me hier niet nodig of wel?