Hallo Welt

webpackages Arbeitet nach dem MVC Prinzip. Das heißt im groben das HTML / CSS Code vom PHP Code getrennt voneinander sind. Das trifft nur halb auf das webpackages Framework zu. Denn webpackages braucht PHP um dynamische Inhalte auf HTML Seiten auszugeben. Wie geht das genau?
Im Ordner packages finden Sie 2 Ordner die für dieses Beispiel nötig sind. Erstens der Ordner controllers. Dieser hat die Aufgabe, die Webanwendung mit Daten aus der Datenbank (oder von wo auch immer) zu versorgen und die Daten, wenn gewünscht, zu speichern oder auszugeben. Dieser wird auch das sogenannte Template (HTML / CSS) aufrufen und Werte übergeben die das PHP im HTML Skript verarbeiten / darstellen soll. Der zweite Ordner ist der views Ordner. Hier drin liegen unserer Templates sowie CSS und Javascript Dateien.

  • package Der webpackages Hauptordner
    • controllers Enthält Controllers die die Webanwendung mit Daten versorgen
      • welcome.class.php Der Controller der das Template aufruft und die Darstellung aufbaut
    • views Enthält Template die die Webseite das aussehen verleihen
      • css Der Beispiel CSS Ordner
      • js Der Beispiel Javascript Ordner
      • templates Enthält die Templates zur Darstellung
        • header.php Die Kopfdatei die in jedes Template automatisch an oberster stelle eingefügt wird.
        • footer.php Die Fussdatei die in jedes Template automatisch an unterster stelle eingefügt wird.
        • index.php Die index enthält den body Bereich einer Seite (da head und footer von den beiden anderen kommen).

welcome.class.php

Die welcome.class.php würde für den Aufruf des index.php Template wie folgt aussehen:


<?php
class welcome extends \package\core\load_functions
{
	public function hello()
	{
		$this->template->setData(array(
			'hello_world'	=>	'Hello World'
		));
		$this->template->display('template/index.php');
	}
}
?>
						
					

Hierbei ist zu beachten das eure Klasse die Klasse load_functions erbt. Diese enthält die Hilfsklassen und wird euch helfen das Template aufzurufen sowie Daten zu übermitteln.

Analyse des Codes

Was geschieht nun eigentlich in der welcome Klasse?! Nun es ist eigentlich ganz simpel. Die welcome Klasse bekommt als aller erstes die load_functions Klasse vererbt. Diese enthält alle Hilfsklassen die man nach der Vererbung auch verwenden kann. Als nächstes wird in der welcome Klasse die Methode definiert die Aufgerufen werden soll. Dies ist in unserem Fall der hello Methode. In dieser bauen wir mit der Hilfsklasse template eine Verbindung zu unserem template/index.php Template auf.


$this->template->display('template/index.php');

Außerdem übergeben wir an das Template noch eine Variable


$this->template->setData(array(
	'hello_world'	=>	'Hello World'
));

Diese Variable heißt hello_world und besitzt den Inhalt Hello World. Die Hilfsklasse template übermittelt nun die Variable an das Template und ruft anschließend das Template ab um es darzustellen. Im Hintergrund fügt er vor dem Aufruf das header.php Template und das footer.php Template an die index.php an.

Template Analyse

Im folgenden Schritt Analysieren wir das Template index.php um herauszufinden wie zum Beispiel die hello_world Variable im Template ausgegeben werden kann. Die index.php sieht wie folgt aus:

index.php

<body>
	<p><?php echo $hello_world; ?></p>
</body>

Wie Sie sehen, wurde die hello_world Variable, die wir an die Hilfsklasse template übermittelt hatten in eine PHP Variable $hello_world umgewandelt. Somit konnten wir diese ganz leicht im Template ausgeben. Dies funktioniert auch mit arrays, objekten, integer, boolean und anderen Typen die in PHP zur Verfügung stehen. Sogar ganze Klasse könnten übermittelt werden. Dabei arbeitet webpackages sauber, schnell und zuverlässig.

Dabei sollten wir uns auch einmal kurz die header.php und die footer.php anschauen. Diese enthalten den Kopf und Fussbereich des Templates.

header.php

<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World Example</title>
</head>

footer.php

</html>

In der Webausgabe Ihres Benutzers würde das alles zusammengefügt ausgegeben werden und schlussendlich wie folgt aussehen.


<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Hello World Example</title>
</head>
<body>
	<p>Hello World</p>
</body>
</html>


Die Methode hello() ist eine Standard Methode wenn keine andere als Parameter übergeben wird.

Klassen Aufruf steuern

Um den Aufruf eurer Klassen zu steuern benötigt webpackages mindestens 2 GET Parameter.

  • $_GET['c'] Dieser ruft die Klasse auf (in unserem Beispiel welcome, aber ohne das .class.php)
  • $_GET['m'] Dieser sucht in der Klasse die Methode (in unserem Fall hello)

Ein Beispiel Aufruf könnte wie folgt aussehen: https://www.example.de/index.php?c=welcome&m=hello

Wenn ich die Klasse foo Aufrufen würde wollen und darin die Methode overview, würde es wie folgt aussehen: https://www.example.de/index.php?c=foo&m=overview

Wenn man mod_rewrite installiert und aktiviert hat, kann die GET Anweisung auch wie folgt aussehen: https://www.example.de/foo/overview.html