Template-parser logische procedurele code

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Top Low-Code Developer Gezocht!

Bedrijfsomschrijving Unieke Kansen, Uitstekende Arbeidsvoorwaarden & Inspirerend Team Wij zijn een toonaangevende, internationale organisatie die de toekomst van technologie vormgeeft door het creëren van innovatieve en baanbrekende oplossingen. Ons succes is gebaseerd op een hecht en gepassioneerd team van professionals die altijd streven naar het overtreffen van verwachtingen. Als jij deel wilt uitmaken van een dynamische, vooruitstrevende en inspirerende werkomgeving, dan is dit de perfecte kans voor jou! Functieomschrijving Als Low-Code Developer ben je een cruciaal onderdeel van ons team. Je werkt samen met collega's uit verschillende disciplines om geavanceerde applicaties te ontwikkelen en te optimaliseren met behulp van Low-code

Bekijk vacature »

Write Down

Write Down

07/01/2011 11:35:42
Quote Anchor link
Hallo,

Ik ben momenteel een template-parser aan het ontwikkelen. Ik tracht hierbij de parser in 3 grote delen op te splitsen. De content, de blocks (header, content, footer, menu, ...) en tot slot het geheel. Dit doe ik d.m.v. drie aparte classes. Ik weet, daarover kan gediscussieerd worden. Ik ben van mening dat het qua gebruik en onderhoud dit eenvoudiger is dan alles in één grote class te stoppen. Maar dat ter zijde.

Zoals ik al aangaf, ik ben aan het ontwikkelen. Nu zit ik eigenlijk niet met een echt probleem maar eerder een vraag in de aard van "hoe zouden jullie het doen"?

Ik zou kunnen kiezen al mijn assigments (toevoeging van content aan blocks) achter elkaar aan te maken. Daarmee bedoel ik het volgende:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
$oTemplate_Content
= new Template_Content('header');
$oTemplate_Content->addAssigment('{$MENU0}', 'Home');
$oTemplate_Content->addAssigment(array('{$HEADERMENU#0}', '{$HEADERMENU#1}', '{$HEADERMENU#2}'), array('Informatie', 'Voorwaarden', 'Kopen'));
$oTemplate_Content = new Template_Content('footer');
$oTemplate_Content->addAssigment('{$COPYRIGHT}', 'Write Down');
?>


Daarna zou ik al mijn blocks kunnen aanmaken op gelijkaardige manier. Uiteindelijk parse ik het geheel en geef ik het weer.

Wat ik echter ook zou kunnen doen, is de assigments van de header opgeven. De block header aanmaken, tot slot het geheel parsen. Daarna de assigments voor het volgende block invoeren (bv. footer), de block footer dan ook effectief aanmaken en opnieuw het geheel parsen. Of in code omgezet:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
//content toevoegen
$oTemplate_Content = new Template_Content('header');
$oTemplate_Content->addAssigment('{$MENU0}', 'Home');
$oTemplate_Content->addAssigment('{$MENU1}', 'Contact');
$oTemplate_Content->addAssigment(array('{$HEADERMENU#0}', '{$HEADERMENU#1}', '{$HEADERMENU#2}'), array('Informatie', 'Voorwaarden', 'Kopen'));

//block maken
$oTemplate_Block = new Template_Block();
$oTemplate_Block->setBlockFile('header.tpl');

/* het parsen van te template ben ik nog aan het ontwerpen
deze zal onder andere kijken of de blocks die bij content zijn gekozen ook wel effectief zijn aangemaakt. */

//content toevoegen

$oTemplate_Content = new Template_Content('footer');
$oTemplate_Content->addAssigment('{$COPYRIGHT}', 'Write Down');

//block maken
$oTemplate_Block = new Template_Block();
$oTemplate_Block->setBlockFile('footer.tpl');

/* op deze manier zou ik evt. wel opteren om het argument (footer.tpl) direct op te nemen in de constructor */

?>


Lees de commentaar in het script ;-)
Wat lijkt jullie het meest logisch / wat lijkt jullie het handigst?

Alvast bedankt :-).
 
PHP hulp

PHP hulp

25/12/2024 16:16:27
 
Kris Peeters

Kris Peeters

07/01/2011 12:19:05
Quote Anchor link
>> wel opteren om het argument (footer.tpl) direct op te nemen in de constructor

Ja, zou ik ook doen.

Als ik met oop bezig ben, begin ik graag te denken buiten de class. Vergeet die class eens en schrijf op hoe je het object zou willen gebruiken.

Toon eens wat je zou doen, inclusief html opmaak.

Ik zie je enkel delen van de pagina behandelen.
 
Write Down

Write Down

07/01/2011 12:35:22
Quote Anchor link
Het is niet dat ik deze template parser los wil gaan gebruiken. Ik wil dit gaan gebruiken in een simpele CMS.

Als voorbeeld voor een header zou ik bv het volgende kunnen hebben:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<html>
<!-- hier meta tags, style, ... etc -->
<h1>{$TITEL}</h1>
<p>{$LINKJE}</p>
<!-- ga zo maar door -->


Maar dus wat mijn bedoeling is: dat mijn cms op eenvoudige manier de template kan genereren...
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.