Website opbouw manieren

Status
Niet open voor verdere reacties.

RoboticPro

Gebruiker
Lid geworden
8 nov 2008
Berichten
568
Goedennacht,

Als je met een website bezig bent met een paar pagina's dan wil je niet bij elke kleine update 10 pagina's aanpassen. Daar zijn verschillende manieren voor
ik doe het op mijn eigen website zo:

Ik pak $_GET['p'] ik plak er ".php" achter en kijk of het bestand in een map bestaat.
zoja dan include ik het. Dan heb je 1 bestand index.php dat je steeds aanroept.

Ook kun je het andersom doen dat je de header en footer include en dan aparte pagina's krijgt. index.php members.php blog.php enz..

Maar hoe doen jullie het dan? Daar ben ik naar benieuwd hoe de meer ervaren PHPers
de website opbouwen.

Brian van der Horst
 
Mijn websites maak ik altijd PHP OOP en Smarty(Template Engine).
Als er een link op mijn website staat welke uiteindelijk iets moet uit voeren gaat dat als volgt:

www.domein.nl/Classe/function/eventuele_parameter/

index.php
PHP:
<?php
include("_autoload.php");
spl_autoload_register(array(new _autoload(), "autoload"));
error_reporting(E_ALL);
ini_set("display_errors",1);


$urlparts = explode('/',parse_url($_SERVER["REQUEST_URI"],PHP_URL_PATH));
if(isset($urlparts[1]) && isset($urlparts[1]) && class_exists($urlparts[1]."Controller") && method_exists($urlparts[1]."Controller", $urlparts[2])){ 
  	$class = $urlparts[1].'Controller';
  	if(isset($urlparts[3]) && $urlparts[3] != ""){
	  	$controller = new $class();
	  	echo $controller->$urlparts[2]($urlparts[3]);
		exit();
  	}else{
	  	$controller = new $class();
	  	echo $controller->$urlparts[2]();
		exit();
  	}
}else{
    $controller = new AlgemeenController();
    echo $controller->show();
    exit();
}
?>

autoload.php
PHP:
<?php
session_start();

class _autoload{
  public function autoload($class){
    ini_set('display_errors',1);
	
    include_once("Library/Smarty/Smarty.class.php");
	
	if (file_exists("Managers/".$class."/".$class.".php")) {
	    include_once("Managers/".$class."/".$class.".php");
	}
	
	if (file_exists("Models/".$class.".php")) {
    	    include_once("Models/".$class.".php");
  	}  
    
  	if (file_exists("Controllers/".$class."/".$class.".php")) {
    	    include_once("Controllers/".$class."/".$class.".php");
	}
  }    
}
?>
Basis html pagina waar alle data heen gaat.
PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
  <head>
    <link rel="stylesheet" type="text/css" href="http://{$host}/Templates/css/jquery-ui-1.8.10.css" />
    {$css}
    <script type='text/javascript' src="http://{$host}/Templates/javascript/jquery-1.4.4.js"></script>
    <script type='text/javascript' src="http://{$host}/Templates/javascript/jquery-ui-1.8.10.js"></script>
    {$javascript}
  <title>{$host}</title>
  </head>  
  <body>
       <div class="menu">
			{$menu}
      </div>
	
      	<div class="content">
			{$content}
		</div>	
</html>
 
Laatst bewerkt:
Ik maak meestal verschillende php bestanden: eentje voor bijvoorbeeld het menu, eentje voor het content, eentje voor overige scripts en systemen. Deze include ik netjes op hun plaats in de hoofdpagina.

Verder hangt het natuurlijk wel een beetje af wat voor site het is... Als het een complexe site is denk ik er natuurlijk wat meer over na, en kijk wat rond. Bij simpele sites gebruik ik gewoon het bovenstaande principe. :)
 
Zelf heb ik nog nooit smarty gebruikt, maar wel Frameworks. CodeIgniter bijvoorbeeld (lightweight en snel). Er zijn er veel meer, maar vooralsnog lijkt me CodeIgniter een van de meest gebruikte (misschien dat Zend in de buurt komt, vanwege Magento, maar het is tamelijk zwaar).
 
Ik gebuik dezelfde manier als Woutertjuh88, gewoon de MVC Methode...
Zo hou je alles bij mekaar en omdat je url netjes opgebouwt is uit je classe en methode word het ook nog is beter voor Google.
 
Ja de reden waarom ik dit vraag is omdat ik binnenkort met een paar maten van mij een website begin en ik zoek dus de makkelijkste manier
waarmee ik zoveel mogelijk zelf invloed heb.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan