Für Bastler / Entwickler: Wie ist Friends strukturiert?

Begonnen von k00ni, 15. Dezember 2007, 14:54:29

Vorheriges Thema - Nächstes Thema

k00ni

Friends orientiert sich sehr stark an der üblichen Struktur der pSys-Module. Eine Datei config.inc.php für die Konfiguration. Eine index.php, eine admin.php. Nur ich habe den Adminbereich bewusst in einen Extraordner \"admin\" verlagert und nicht wie sonst üblich, Administratordateien und Frontenddateien in einem Ordner gelassen. Dies erhöht meiner Meinung nach die Übersicht.
Die Strukturierung der Dateien und Ordner
Es gibt einen Hauptordner \"Friends\". Dieser enthält Module, einen Ordner images und functions, sowie die modinfo.inc.php und modinstall.inc.php.
- /admin: Enthält die Administrationsdateien von Friends.
- /functions: Eine Sammlung von Funktionen für die Arbeit mit den Datenbeständen des pSys, besonders für die Verwaltung von Usern.
- /images: Alle Bilder und Grafiken, die die Module von Friends benötigen, werden hier zentral abgelegt.
Jedes Modul besitzt den gleichen Aufbau (admin / functions).
 
Datenbankoperationen
Alle Abfragen laufen über eine eigene Funktion. Ich mag es nicht, wenn zwischen PHP, HTML und CSS-Code noch SQL-Abfragen herumgeistern. Deshalb habe ich alle Abfragen ausgelagert. Diese liegen im Ordner \"functions\". Pro Abfrage gibt es eine Datei, welche beispielsweise folgenden Aufbau hat:
 


Hier kann man sich beispielsweise alle User, die registriert sind, zählen lassen. Dabei kann die Art der User (user, admin, mod) festgelegt werden. Wie man oben sehen kann, verwende ich Kommentare folgender Form:
/**
*
*/


 
 
Ich habe Friends mit Eclipse entwickelt und habe damit eine Möglichkeit gefunden, den eigenen Code zu dokumentieren, ohne großartig Dokus zu schreiben. Ich fahre einfach über die Funktion drüber und sehe, was ich vorher hingeschrieben habe (1 zu 1). Sehr geiles Feature.
check_query
Wie manchen aufgefallen ist, wird die Abfrage noch an eine Funktion übergeben, die sich check_query nennt. Dies ist eine sehr wichtige Funktion! Alle Abfragen erhalten ihre Daten als Parameter über die Funktion. Man setzt in den Querys dann Platzhalter und übergibt das Query inklusive der erhaltenen Parameter an die Funktion check_query, welche dann an jeden Platzhalter den richtigen Parameter setzt. Das alles nennt sich http://powie.de/cms/forum/showthread.php?id=22482\" rel=\"\">Prepared Statement und dient zur (weitgehenden) Vorbeugung gegen SQL-Injections und ähnlichen. In den pSys-Modulen wird beispielsweise direkt die Eingabe des Users in das SQL-Kommando integriert, was meiner Meinung nach ein erhebliches Gefahrenpotenzial darstellt.
 
Quittierung: Infos oder Warnings
Es gibt 2 Funktion im Funktionsordner des Hauptordners von Friends, namens: show_info und show_warning. Die erste gibt einen einfachen Hinweis aus, was oft beim Quittieren von Änderungen oder allgemeinen Hinweisen gebraucht wird.
Show_warning hingegen wird bei Fehlermeldungen oder wichtigen Dingen benötigt. Mir war die Funktion msgBox aus dem pSys zu simpel und hat bestimmt ab und an den einen oder anderen User verwirrt. Denn wenn man ein Ausrufezeichen sieht, denkt man oft an etwas schlimmes oder problematisches, obwohl die Software einfach nur einen Vorgang bestätigt.


Mit der Zeit werden hier noch mehr Informationen über die Interna von Friends erscheinen. Ist euch noch was aufgefallen, dann einfach posten /uploads/emoticons/icon_e_wink.gif.3167d127940f44558fbf1ccd9b6d60a9.gif\" alt=\";-)\" />

all your base are belong to us / Discord