Archief - PHP: Wat is het handigste? (includes of aparte pagina's)

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

horse_99

Legacy Member
Hallo,

Kben eens aan het nadenken geweest over een website die ik binnekort ga maken voor een vereniging.

Waar geven jullie de voorkeur aan: werken met aparte pagina's of met includes, dus altijd index.php?pagina=home (bijvoorbeeld). Ik denk dat het met includes gemakkelijker is, maar zijn hier ook nadelen aan? Allez ik bedoel maar, als je dan pagina's gaat includen waar je ook weer dingen maakt met GET en POST, wordt dit dan niet te moeilijk en ingewikkeld? Of geeft dit geen problemen?

Ik heb ook al enkele websites gezien waar op de volgende manier includes worden gedaan: www.eenofanderewebsite.be?pagina=home. Hoe doe je zoiets?

Bedankt voor alle reacties! :bow:

tikketim

Legacy Member
includes zijn gemakkelijker als je mer php werkt , zonder php kan je best elke pagina apart maken tenzij je met een iframe werkt

killgore

Legacy Member
APARTE PAGINA's (soz 4 caps :p)

anders heb je mess met formulieren, user input controleren, fucked up layouts, ...

ook is de meest normale, deftige, gangbare logica: in jouw specifiek script include je de algemene bestanden (config, menu, header, ...) en niet omgeerd (in de layout include je het specifiek script).

edit: en een template systeem, in godsnaam: gebruik zo snel mogelijk een templatesysteem (nie ingewikkeld, basis is genoeg), dit is echt niet moeilijk om te leren, er zijn er genoeg deftige te vinden op het net en het helpt immens (php code en html code scheide == vreselijk handig en proper)

edit2: het include pagina systeem heeft imho maar 1 voordeel: als je niet de specifieke bestandsnaam van jouw page wilt weggeven. Maar ik denk niet dat er veel gevallen zijn die dit zullen willen.

LunchBox

Legacy Member
horse_99 zei:
Ik heb ook al enkele websites gezien waar op de volgende manier includes worden gedaan: www.eenofanderewebsite.be?pagina=home. Hoe doe je zoiets?
bedoel je zoiets: http://www.showme.be/?mid=sef
hij pakt hier gewoon de standaard pagina van die map hoor, eigenlijk is het dus http://www.showme.be/index.php?mid=sef

en hier wordt de 'unieke code' SEF binnen een php geparste xml file (http://www.showme.be/xml/members.php) vergeleken en zo doorverwezen naar de juiste informatie (http://www.showme.be/xml/sef.xml) // maar bon dit maar als extra informatie van de pipeline: mysql > php > xml > flash die voor dit 'testje' gebruikt werd.

DieselPower

Legacy Member
I'm with killgore
darkbone heeft daar trouwens een heel gepaste afbeelding voor...

dJeez

Legacy Member
killgore zei:
APARTE PAGINA's (soz 4 caps :p)

anders heb je mess met formulieren, user input controleren, fucked up layouts, ...
Niet noodzakelijk, als je tenminste weet wat je doet. Een framework à la Fusebox werkt op die manier. Zelf heb 'k nu ook 2 intranets op die manier gebouwd (niet met Fusebox zelf, gewoon zelf iets gemaakt met gebruik van Smarty voor templates) en 'k vind het wel iets hebben. Maar 't hangt echt af van project tot project of ik het zou toepassen of niet.

De manier waarop ik 't doe is een basisscript dat op basis van URL parameters andere scripts (die logisch gestructureerd zijn in folders) gaat includen. Alles verloopt dus ogenschijnlijk via 1 centraal index.php script, maar dat delegeert gewoon de verdere verwerking naar 't correcte script, waar de afhandeling van de forms en eventuele fouten gebeurt. Uiteindelijk gebeurt er niet veel anders dan als je de scripts rechtstreeks zou aanroepen (buiten 't feit dat de controle al op een hoger niveau gebeurt ipv dat je dat in elk "eind"script opnieuw moet doen).

Slicer

Legacy Member
dJeez zei:
De manier waarop ik 't doe is een basisscript dat op basis van URL parameters andere scripts (die logisch gestructureerd zijn in folders) gaat includen. Alles verloopt dus ogenschijnlijk via 1 centraal index.php script, maar dat delegeert gewoon de verdere verwerking naar 't correcte script, waar de afhandeling van de forms en eventuele fouten gebeurt. Uiteindelijk gebeurt er niet veel anders dan als je de scripts rechtstreeks zou aanroepen (buiten 't feit dat de controle al op een hoger niveau gebeurt ipv dat je dat in elk "eind"script opnieuw moet doen).

Ik vind dit ook het handigste, één pagina waar volgende parameters de juiste pagina-klasse wordt ingeladen, daar alle klasses volgens dezelfde interface zijn opgebouwd is het genereren van de pagina abstract definieerbaar.

Persoonlijk gebruik ik een init functie die forms zal verwerken en de nodige data laden (het returned standaard zichzelf maar kan ook een default error-klasse teruggeven die de standaard error-layout weergeeft) en een show functie die de pagina layout maakt (via templates, kwestie van business logic en template logic te scheiden)

Lashknife

Legacy Member
ik maak eigenlijk een mixje:
schrijf alle componenten in apart includeerbare php script files die ik include vanuit een index.php, users.php, profile.php, admin.php

Deze pagina's hebben meestal hun eigen layout, dewelke ook opgehaald worden uit included files (header/footer/menu) maar dan telkens met hun eigen stijlen.

mail php files = system info, connection info, includen van page-related files en includen van de juiste componenten zoals je ze zelf wil hebben.

Heel makkelijk om modulair te werken met losse <div>'s die je naar eigen goesting kan plaatsen en opmaken.

Heb niet zoveel tijd om te coden en templates zijn nog niet aan de orde (evenmin oo-php)

geen last met form afhandeling want dit gebeurt in processing php files.

Enigste php in mijn main files zijn eigenlijk de loops om queries weer te geven van een beetje inhoud. Dit zou met templates te realiseren zijn, maar heb er nog geen tijd voor gehad om dat te bekijken. Bovendien moet er dan ook nog bovenop nog eens een template file ingeladen worden en moet je je gaan bezighouden met evengoed alles te gaan layouten...

Ieder zijn goesting :)

[ImpacT]

Legacy Member
killgore zei:
APARTE PAGINA's (soz 4 caps :p)

anders heb je mess met formulieren, user input controleren, fucked up layouts, ...

ook is de meest normale, deftige, gangbare logica: in jouw specifiek script include je de algemene bestanden (config, menu, header, ...) en niet omgeerd (in de layout include je het specifiek script).

Volledig mee oneens eigenlijk. 'k Werk nu al altijd via includes en 'k vind het gewoon zalig. Ook het feit dat enkel de veranderingen die er optreden worden gewijzigd in de layout en niet een volledige pagina opnieuw moet worden ingeladen vind ik veel beter, want het is sneller en ergens kost het ook minder bandbreedte.

Misschien een nadeel is dat je wel wat "controles" gaat moet inbouwen in je website als je variabelen gaat doorgeven enzow, maar dat kan je soms ook oplossen door met SESSION-vars te gaan werken. Ook, telkens een nieuwe pagina opbouwen, pfff veel knip & plakwerk, voor alles wat er al staat opnieuw er nog maar eens te zetten, wat eigenlijk niet nodig is.

En persoonlijk vind ik een site die met includes werk ook meer professioneel uitzien. Maar jah dat is echt persoonlijk. Om misschien onduidelijkheden uit de weg te werken, 'k heb het dus over websites die met url's werken volgens deze stijl

http://www.mijnwebsite.be/index.php?menu=start?uid=12

Dus dat er altijd van uit de index.php wordt opgebouwd. Een dynamisch opgebouwde website zoals sommige het ook wel zeggen :).

0n3Liner

Legacy Member
waarom veel knip en plak werk? je kan alle functies toch in 1 file zetten en telkens die file includen :)

heb trouwens wat de pest gekregen aan het ?page=home
altijd alle subpaginas in een aparte folder, meer files...argh...
nochtans, vroeger leek me die manier simpeler...

Slicer

Legacy Member
Je zal toch niet zoveel extra pagina's hebben (enkel de index toch)? Maar telkens aparte pagina heb je wel veel herhaling van code (oproep functies van globale layout en functionaliteit)

killgore

Legacy Member
[ImpacT] zei:
Volledig mee oneens eigenlijk. 'k Werk nu al altijd via includes en 'k vind het gewoon zalig.
1)Ook het feit dat enkel de veranderingen die er optreden worden gewijzigd in de layout en niet een volledige pagina opnieuw moet worden ingeladen vind ik veel beter, want het is sneller en ergens kost het ook minder bandbreedte.

2)Misschien een nadeel is dat je wel wat "controles" gaat moet inbouwen in je website als je variabelen gaat doorgeven enzow, maar dat kan je soms ook oplossen door met SESSION-vars te gaan werken.

3)Ook, telkens een nieuwe pagina opbouwen, pfff veel knip & plakwerk, voor alles wat er al staat opnieuw er nog maar eens te zetten, wat eigenlijk niet nodig is.

4)En persoonlijk vind ik een site die met includes werk ook meer professioneel uitzien. Maar jah dat is echt persoonlijk. Om misschien onduidelijkheden uit de weg te werken, 'k heb het dus over websites die met url's werken volgens deze stijl

5) Dus dat er altijd van uit de index.php wordt opgebouwd. Een dynamisch opgebouwde website zoals sommige het ook wel zeggen :).

argument 1: beide systemen moeten opnieuw ingeladen worden, includes =/= frames he ;). Hoe je je pagina ook construeert (specifieke page in layout includen of omgekeerd), er zal altijd evenveel data worden verstuurd, dit is een verkeerd beeld dat vele mensen krijgen ;).

argument 2: alles in session vars zetten gaat je heel wat onnodig script werk opleveren, VEEL liever gewoon een proper script waar ik alles zonder probs uit men get's kan halen en waar ik zonder problemen link naar een andere pagina (== niet moet zorgen dat men url-query altij din orde is).

argument 3: evenveel zever, dat knip-en plak werk voorkom je juist door de algemene delen te includen in jouw pagina (en niet jouw pagina in de algemene delen :p).

argument 4: sommige mensen zeggen dat als je een site met kladblok maakt dit ook professioneler is. Dit is voor mij het zelfde als ?page=iets gebruiken om professioneler te lijken, dikken bs dus ;). Als ik superscripter ben en jij supernoob (hypothetisch :p) ben jij dan professioneler als mij omdat je dat systeem gebruikt? professioneel imho = deftige & duidelijke layout, snelle scripts, goede foutafhandeling, scheiding van php & html, een systeem opbouwen dat je makkelijk kan aanpassen (wat in het geval van ?page= vaak NIET zo is), ...

Argument 5: dat is niet dynamisch opgebouwd, dynamisch opgebouwd is gewoon het feit dat je een pagina samenstelt at run time door middel van php en eventueel een database. Dat je dus ipv vaste code "hallo naam" door middel van een script taal het dynamisch maakt zodat voor iedereen die "naam" anders is. jij gebruikt gewoon EEN systeem, maar dat is niet HET dynamische systeem hoor. Het geeft zelfs vaak verkeerde beelden qua inleessnelheid e.d. .

edit, ter verduidelijking van wat ik dus aanraad, een template-script dat ik gebruikte voor een bepaald project:

PHP:
<?php
require_once("config.php"); //Script waarin alle belangerijke vars worden opgeslagen, zoals bv. database-passwords
require_once("gen_functions.php"); //Custom functies
require_once("gen_systems.php"); // Algemene systemen, zoals template-systeem, databaseklasse, ...
include("layout_up.php");
//pagina code
include("layout_down.php");
?>

Dit is dus een "template" waarvan ik altijd begin, zoals je ziet moet ik nu gewoon nog mijn code schrijven die voor die specifieke pagina de functionaliteit regelt EN (aangezien ik met templates werk) de template voor de layout van die pagina.

edit2: reden waarom ik gen_functions en gen_systems niet in config include is simpelweg omdat config verondersteld wordt NIETS van functies te declareren ;).
Reden waarom die functies niet onder gen_systems zitten is omdat ik die functies soms nodig heb op aparte scripts (geen gewone pagina's meestal) die gen_systems niet nodig hebben en omgekeerd, wat meestal redelijk wat parsetijd uitspaart.

servi

Legacy Member
gebruik gewoon datgene wat je het liefst gebruikt. Beide systemen hebben zo zijn voor-en nadelen.


ikzelf gebruik een soort templatesysteem dat ikzelf het gemakkelijkste vind en dat ik blijf gebruiken is als volgt :

ik maak een bestand aan nieuws.php dat dit bevat :
<?
include('configuratie.php');
include('klassen/Database.php');
include('klassen/TemplateLezer.php');

$templateLezer = new TemplateLezer('nieuws');

?>

ik zet dan al mijn templates in een submap templates/ :
in het template nieuws.template zit dan :
$html->hoofding
$html->nieuws_items
$html->einde


de variabelen $html verwijzen dan naar pagina's, in het bovenstaand voorbeeld wordt dan hoofding.php, nieuws_items.php en einde.php ingeladen. Als echter die pagina's niet bestaan dan laad ik de templates in, bijvoorbeeld templates/hoofding.template en templates/einde.template .

maar voor nieuws_items maak ik wel een php-bestand waar ik dan mijn databaseverwerkingen doen :
<?php
$db = new Database(DB_GEBRUIKER,DB_PASWOORD,DB_DATABASE);
$db->query('SELECT id,titel,inhoud FROM tekst');
while ( $db->geefRij() ) {
$templateLezer->voegToe('nieuws_items');
}
?>


en dan ziet mijn nieuws_items.template er bijvoorbeeld als volgt uit :
$db->id<br />
$db->titel<br />
$db->inhoud<br />
<hr />



En zo kan ik dan heel eenvoudig mijn pagina's uitbreiden en werk ik het snelste. (Al moet ik wel toegeven dat het opzetten van die templates wel wat werk vereist )

DJ_Trash

Legacy Member
dus, als ik zeg, ik maak 1 pagina me een tabel me cell voor header, navigatie en content, en ik laad feitleijk steeds dezelfde pagina, maar als naargelang welk argument ik in men url steek, laad ik in die contentcell een andere pagina, dan ben ik goe bezig?

want ik lees pessies ook dingen da mensen iedere pagina apart willemaken, inclusief header en navbar, opnieuw voor elke pagina? da kan ook ni echt verantwoord zijn he?

Radiance

Legacy Member
Da's op zich geen slechte manier nee, zoals gezegd doe wat je zelf het makkelijkste vindt.
één opmerking though : als je www.site.be/pagina=nieuws toestanden gaat gebruiken en dan gewoon $pagina include zet daar aub enige input controle op (zal je wel de nodige tutorials over vinden) of uw site is zo lek als een zeef.

horse_99

Legacy Member
Mja, ik denk toch maar dat ik het met aparte pagina's ga doen. Ik heb al eens iets kleins gemaakt met het andere systeem, maar hier heb ik toen inderdaad wel wat last gehad met formulieren. Ik heb het toen wel kunnen oplossen, maar liever niet zoeken achter een oplossing dan wel.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan