PHP en HTML

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

MrX

MrX

01/08/2006 10:14:00
Quote Anchor link
Ik zie veel mensen het gebruik van html en php zo maken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
php-blablabla;
?>

<html>
html-blablabla
</html>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
nog meer php-blablabla;
?>


Ikzelf maak mijn scripts op volgende manier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
php-blablabla;
print <<<HTML
<html>
html-blablabla
</html>
HTML
;
nog meer php-blablabla;
?>


Beide geven hetzelfde output maar welke is beter?
 
PHP hulp

PHP hulp

24/12/2024 14:03:53
 
Arjan Kapteijn

Arjan Kapteijn

01/08/2006 10:17:00
Quote Anchor link
De vraag is niet wat is beter maar wat werkt voor jezelf het prettigste.
 
MrX

MrX

01/08/2006 10:27:00
Quote Anchor link
En naar welke optie gaat jouw keuze?

Wat zijn de voor- en nadelen van beide opties?
 
Roy Bongers

Roy Bongers

01/08/2006 10:46:00
Quote Anchor link
Ik ben bij men laatste project bezig met smarty. Je krijgt opzich nog best veel smarty code in je html (vooral als je met div's etc werkt). Maar op die manier heb ik in iedergeval geen html code meer in men php. En dat mijn HTML templates er wat lelijker op worden. Tja daar zit ik opzich niet zo mee aangezien je die een keer maakt en nooit meer aanpast waarschijnlijk. PHP ben je echter constant mee bezig.
 
Martijn Wieringa

Martijn Wieringa

01/08/2006 11:18:00
Quote Anchor link
En dat mijn HTML templates er wat lelijker op worden <-

De filosofie zou moeten zijn (in mijn ogen althans) dat template bouwers grafisch onderlegde mensen zijn die nagenoeg 0% kennis (willen) hebben van technieken als PHP e.d...

Op moment dat dat geen eis is, tjah.. dan is de hemel te rijk ;)
 
Roy Bongers

Roy Bongers

01/08/2006 13:48:00
Quote Anchor link
Ja ik ken de filosofie maar 't werkt gewoon niet. Geen enkele editor ondersteunt die {$var[nogwat]} dingen in syntax highlighting en je html komt echt vol te staan met die troep. En ik vind deze dingen minder duidelijk dan foreach loopjes met php. Als je er voor zorgt dat je alleen array's aanleverd en je designers weten hoe ze werken kun je designers mooiere code aanleveren denk ik.

Maar goed ik doe dit project alleen mij boeit 't opzich niet als er van die lelijke codes tussen men HTML templates staan. Ik ben al blij genoeg dat ik geen html meer in mijn php files heb staan.

Waarom heb ik dan toch voor smarty gekozen? Ik wou men HTML en PHP gescheiden houden. Dus geen html in mijn php en geen php in mijn html. Nu wordt dat met een ander taaltje opgelost. Dit is trouwens ook de eerste keer dat ik met smarty werk. Hiervoor had ik wel eens met de phpBB template engine gewerkt. Maar goed ik ga die smarty class zelf nog eens wat aanpassen want die ouput buffer is nog niet naar mijn zin.

btw voorbeeld van een smarty template:

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
    <div id="blog">
        <div id="article">
{section name=articles loop=$article}
            <div class="blogItem">
                <a name="{$article[articles].art_id}"></a>
                <h3>{$article[articles].date}</h3>
                <h2>{$article[articles].title}</h2>
                <p>{$article[articles].article}</p>
                <h4>Posted by: {$article[articles].posted_by} -  <a href="javascript:toggle('blog_{$article[articles].art_id}')">{$article[articles].comment_count} comment(s)</a></h4>
            </div>
            <div class="blogComments" id="blog_{$article[articles].art_id}" style="display: none;">
{section name=comments loop=$comment[articles]}
                <h1 class="commentUsername">{$comment[articles][comments].username} wrote:</h1>
                <p>{$comment[articles][comments].message}</p>
                <h2 class="commentDate">{$comment[articles][comments].commentDate}</h2>
{/section}
            </div>
{/section}
{section name=page_numbering loop=$page_numbers}
            <a href="blog/{$page_numbers[page_numbering].num_articles}/">{$page_numbers[page_numbering].page_nr}</a>
{/section}
        </div>
    </div>
Gewijzigd op 01/01/1970 01:00:00 door Roy Bongers
 
Arend a

Arend a

01/08/2006 13:49:00
Quote Anchor link
Nee, ik denk het niet. Templates moeten altijd een koppeling hebben met de code, dus 0% zal nooit mogelijk zijn. Wat wel kan is natuurlijk gewoon de gebruikelijke samenwerking tussen programmeur en grafisch ontwerper, waarbij de programmeur een html layout van de grafisch ontwerper vertaald naar een template.
 
Roy Bongers

Roy Bongers

01/08/2006 14:00:00
Quote Anchor link
Ja inderdaad dat is een goede mogelijkheid. Maar dan moet je geen designer hebben die met een web layout komt opgebouwt uit tables die zo uit photoshop komt rollen. En waar de designrandjes dus ook 300 pixels breed zijn ip 1 met een img width van 300. Anders kun je nog alles zelf aan gaan passen :D .

De andere optie is dus om de designer te leren werken met smarty of php code. foreach lusjes en wat echo's zijn niet zo moeilijk.

Oh nog een groot voordeel van template engines ipv directe echo's! Stel je wilt een cookie aanmaken dan kun je dit overal doen aangezien de content pas op 't eind van het script naar de browser wordt gestuurd als alles al afgehandeld is. Als je met echo's werkt kom je echt in de problemen als je bijv. altijd een vaste header direct naar de browser stuurt. Je kan dan namelijk geen cookie meer maken.
 
Eric Cartman

Eric Cartman

01/08/2006 15:41:00
Quote Anchor link
Wat ook handig is, is PHP een XML-bestand laten genereren en dat met XSLT tot een HTML-bestand te laten ombouwen. Je kan er voor kiezen de XML of HTML als broncode te nemen.
 
Roy Bongers

Roy Bongers

01/08/2006 16:00:00
Quote Anchor link
Wou je dat gereren door DOM laten doen? Ik heb daar laatst een stuk code van gezien maar ik vond het een behoorlijke lap code voor iets simpels. En als je 't genereren zelf doet met echo's dan is je XML / HTML niet meer gescheiden van je code.
 



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.