Colorscheme

Webdesign Guide – die Arbeitsumgebung


Übersicht – Webdesign Guide

In diesem Teil richten wir uns unsere Arbeitsumgebung ein, wir bringen Smarty zum laufen und verschaffen uns einen Überblick über unser Datenbank-Schema (inklusive anlegen der benötigten Tabellen). Jetzt holt sich noch jeder schnell einen Kaffee (oder ein beliebiges Getränk nach eigener Wahl) und unternimmt dann folgende Schritte:

  1. Vergewißert euch das euer bevorzugter Texteditor einsatzbereit ist. Wer lieber mit Dreamweaver oder GoLive arbeitet kann das gerne machen, aber es reicht ein einfacher Texteditor mit Syntax-Highlighting aus (“Notepad” tut es natürlich auch)
  2. auf dem Server muss PHP mindestens in der Version 4.4.2 installiert sein (damit hab ich es getestet, es geht sicherlich auch mit niedrigeren Versionen) – kann man prüfen indem man die Datei “infophp.php” aufruft (wenn nicht vorhanden, vorher anlegen)
  3. mit seinem Server-Administrations-Tool legt man nun eine Datenbank an und merkt sich Benutzernamen und Passwort
  4. Ihr habt nun zwei Möglichkeiten an Smarty zu kommen: Ladet euch hier meine vorkonfigurierte Version runter http://webdesignblog.de/wp-content/uploads/2006/11/smarty_fertig.rar
    oder geht auf http://smarty.php.net unter downloads und ladet euch die aktuelle Version von Smarty herunter
  5. Von PEAR verwenden wir vier Pakete, erstmal das Datenbank-Paket, dann das Autorisierungspaket, das HTML-Paket (für Quickform) und das Mail-Paket. Man kann die ganzen Funktionen auch ohne PEAR umsetzen, aber PEAR erleichtert einem die Arbeit schon erheblich, der Einarbeitungsaufwand lohnt sich also.

    Die PEAR-Pakete bekommt ihr unter http://pear.php.net, schaut im Menü unter “Downloads -> List Packages“:
    - Datenbank-Paket: “Database -> DB -> Download” (ich verwende hier die Version DB-1.7.6)
    - Quickform-Paket: “HTML -> HTML_Quickform -> Download” (ich verwende hier die Version HTML_QuickForm-3.2.7)
    - Auth-Paket: “Authentication -> Auth -> Download” (ich verwende hier die Version Auth-1.4.2)
    - Mail-Paket: “Mail -> Mail -> Download” (ich verwende hier die Version Mail-1.1.14)

Nun da wir alles beisammen haben (hoffentlich ist der Kaffee noch nicht kalt), entpacken wir erstmal die Rar-Dateien. Entpackt zunächst die “DB-1.7.6″ als Ergebnis erhaltet ihr den Ordner “DB-1.7.6″ kürzt alles weg ausser “DB”. Das gleiche macht ihr mit dem Ordner “HTML_QuickForm-3.2.7″ -> “HTML”, “Auth-1.4.2″ -> “Auth” und “Mail-1.1.14″ -> “Mail”. Die “package.xml” könnt ihr übrigens löschen. Ladet nun den Ordner “DB“, den Ordner “HTML“, den Ordner “Auth“, den Ordner “Mail” und den Ordner “smarty” ins Root-Verzeichnis eurer Website, eure Ordnerstruktur sollte danach folgendermaßen aussehen:

Zusätzlich brauchen wir aus dem PEAR-Paket “HTML_Common” (List Packages -> HTML -> HTML_Common -> Download) noch die Datei “Common.php” und diese kopieren wir in unser HTML-Verzeichnis.

- root
– Auth
– DB
– HTML
—- Common.php
– Mail
– smarty

Da wir gerade beim einrichten sind: Legt im Root noch zusätzlich eine Datei “index.php” und eine Datei “.htaccess” an. Die bleiben erstmal leer, der Inhalt kommt später.

Wechselt nun in den “smarty”-Ordner und weist den beiden Unterordnern “templates_c” und “cache” die Rechte “777” zu.

Wie ist unsere Datenbank aufgebaut
Unsere Datenbank wird voraussichtlich mit 8 Tabellen in ihrer Standard-Konfiguration auskommen (möchte man die Webanwendung später erweitern, werden wohl noch zusätzliche Tabellen hinzukommen), diese Tabellen (inklusive ihrer Spalten) sind:

- Tabelle-User -> id_user, username, pass, email, active, regdate, activation_key
- Tabelle-Post -> id_post, title, content
- Tabelle-Cat1 -> id_cat1, name, desc, cat_nicename
- Tabelle-Cat2 -> id_cat2, name, cat_super, desc, cat_nicename
- Tabelle-User-Post -> id_user, id_post
- Tabelle-Tag – id_tag, name
- Tabelle-Post-Tag -> id_post, id_tag
- Tabelle-Post-Cat -> id_post, id_cat1, id_cat2

Als Tipp: malt euch die Struktur der Tabellen auf, das macht das ganze verständlicher. Alternativ empfiehlt sich auch ein Programm wie ERwin, mit dem kann man die Tabellen und ihre Relationen (hier nicht mit aufgeführt) übersichtlich darstellen.

Und nun folgt der SQL-Code den ihr benötigt, um eure MySQL-Datenbank mit den richtigen Tabellen zu füllen:

/* START SQL-CODE*/

CREATE TABLE `cat1` (
  `id_cat1` smallint(5) unsigned NOT NULL auto_increment,
  `username` varchar(255) NOT NULL default '',
  `desc` text NOT NULL,
  `cat_nicename` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id_cat1`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

CREATE TABLE `cat2` (
  `id_cat2` mediumint(8) unsigned NOT NULL auto_increment,
  `name` varchar(255) NOT NULL default '',
  `cat_super` mediumint(8) unsigned NOT NULL default '0',
  `desc` text NOT NULL,
  `cat_nicename` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id_cat2`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

CREATE TABLE `post` (
  `id_post` int(10) unsigned NOT NULL auto_increment,
  `title` varchar(255) NOT NULL default '',
  `content` blob NOT NULL,
  PRIMARY KEY  (`id_post`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

CREATE TABLE `post_cat` (
  `id_post` int(10) unsigned NOT NULL default '0',
  `id_cat1` mediumint(8) unsigned NOT NULL default '0',
  `id_cat2` mediumint(8) unsigned NOT NULL default '0'
) TYPE=MyISAM;

CREATE TABLE `post_tag` (
  `id_post` int(10) unsigned NOT NULL default '0',
  `id_tag` int(10) unsigned NOT NULL default '0'
) TYPE=MyISAM;

CREATE TABLE `tag` (
  `id_tag` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id_tag`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

CREATE TABLE `user` (
  `id_user` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(100) NOT NULL default '',
  `pass` varchar(255) NOT NULL default '',
  `email` varchar(255) NOT NULL default '',
  `active` tinyint(1) NOT NULL default '0',
  `regdate` int(11) unsigned NOT NULL default '0',
  `activation_key` varchar(30) NOT NULL default '',
  PRIMARY KEY  (`id_user`)
) TYPE=MyISAM AUTO_INCREMENT=1 ;

CREATE TABLE `user_post` (
  `id_user` int(10) unsigned NOT NULL default '0',
  `id_post` int(10) unsigned NOT NULL default '0'
) TYPE=MyISAM;

/* ENDE SQL-CODE*/

Damit sollten wir erstmal alle Tabellen, die wir benötigen, angelegt haben. Somit ist die Arbeitsumgebung fertig eingerichtet, wir haben mit den PEAR-Paketen einige Bibliotheken die unsere Arbeit gerade mit Formularen und dem Zugriff auf die Datenbank erheblich vereinfachen, die Template-Engine Smarty hilft uns dabei Code und Layout voneinander zu trennen und die eben angelegte Datenbank wird die Eingaben unserer Benutzer speichern und jederzeit wieder abrufbar machen.

Nützliche Quellen:
- DBManager – Der DBManager ist kostenlos und mit ihm kann man ganz einfach ER-Diagramme erstellen, mittels eines ER-Diagramms kann man sich selbst und anderen ganz schnell die eigene Datenbankstruktur visualisieren: http://www.dvdsoft.info/dbmanager.htm

- MySQL-Performance: http://www.schefter.net/deutsch/techtalk/mysql_performance.html

- MySQL-Performance-TUNING: http://blog.koehntopp.de/uploads/PT_isotopp_deutsch.pdf


Verwandte Artikel
  1. MySQL Assoziation Problem – Anzeige von Verbindungen
  2. Webdesign Guide – Eintragsformular und Webnotizen
  3. Trackbacks mit php verarbeiten
  4. Webdesign Guide – Hinweise
  5. Webdesign Guide – User-Modul: Login

am November 29, 2006 um 17:41 Uhr | in Webdesign | 3 Kommentare

1 Trackbacks/Pingbacks
  1. Pingback: Webdesign Guide - Programmieren einer eigenen Web-Anwendung mit PHP, MySQL, Smarty, Pear, ModRewrite » Webdesignblog on Dezember 1, 2006

2 Kommentare
  1. Tom Webb, September 28, 2007:

    Deine smarty_fertig.rar hat nen Entpackungsfehler.

  2. Chris, September 29, 2007:

    Also bei mir funktioniert es… noch irgendwer Probleme damit?

Tut mir leid, die Kommentarfunktion für diesen Beitrag ist geschlossen.