[DEV - PHP - OOP] Erweiterbare User Klasse

  • Erweiterbare "User" Klasse


    Moinsen,

    ich hatte vor kurzer Zeit die Idee, eine Art Klassenbibliothek für Retro Hotels zu erstellen.
    Da ich etwas faul bin, habe ich bisher nur die User Klasse fertiggestellt.
    Diese ist, aufgrund eines eigenprogrammierten Plugin-Systems, vollkommen erweiterbar.
    Da ich eine Klassenbibliothek erstellen wollte, existiert auch noch eine Factory Klasse, damit man nicht immer die MySQLi-Klasse als Parameter übergeben muss.


    Funktionen:

    Spoiler anzeigen


    Ein neues "User" Objekt erstellen

    PHP
    $username = 'Johnix';
    $user = Factory::buildUser($username);


    Eine Spalte des Benutzers ausgeben (In dem Fall: credits)

    PHP
    $username = 'Johnix';
    $user = Factory::buildUser($username);
    
    
    echo $user->credits;

    Spalten eines Benutzers verändern (In dem Fall: credits und ip_last)

    PHP
    $username = 'Johnix';
    $user = Factory::buildUser($username);
    
    
    $user->credits = 100;
    $user->ip_last = $_SERVER['REMOTE_ADDR'];
    $user->ExecuteUpdate(); # anstatt 2 Queries auszuführen nur einen (yay)

    Anderen Benutzer als Freund hinzufügen

    PHP
    $username = 'Johnix';
    $user = Factory::buildUser($username);
    $user2 = Factory::buildUser('Bob');
    
    
    $user->AddFriend($user2);


    Prüfen, ob ein User mit einem anderen befreundet ist

    PHP
    $username = 'Johnix';
    $user = Factory::buildUser($username);
    $user2 = Factory::buildUser('Bob');
    
    
    $user->IsFriendsWith($user2);

    Und viele mehr!

    Codebeispiele aus der Klasse

    Spoiler anzeigen

    Methode ExecuteUpdate()

    Methode IsFriendsWith(User $user)


    Das Plugin-System:

    Spoiler anzeigen

    Die User-Klasse besitzt eine magische Methode, nämlich __call(), mit der aufgerufene Methoden die nicht in der Klasse vorhanden sind bearbeitet werden können.
    Die __call() Methode ist so aufgebaut:

    Und so sieht ein Beispiel Plugin (ExamplePlugin) aus.
    Dies ist eine einzelne Datei (ExamplePlugin.php) und liegt im Plugin Ordner.

    PHP
    if (!isset($nondirectAccess)){ die("Direkter Zugriff nicht erlaubt"); }
    
    
    $irgendeineZahl = 1*2*3*4*5+5;
    $str = $this->row->username.": ".$this->row->credits." - ".$irgendeineZahl;
    
    
    
    
    Registry::add('PLUGIN_RETURN_VALUE', $str);


    Die neue Methode kann man wiefolgt aufrufen

    PHP
    $username = 'Johnix';
    $user = Factory::buildUser($username);
    
    
    $user->ExamplePlugin();

    Wie fang ich an?

    Spoiler anzeigen


    Als erstes downloadest du dir das beigefügte RAR Verzeichnis und packst dessen Inhalt in einen beliebigen Ordner, in dem du diese Klasse verwenden möchtest.
    Nun öffnest du die "RequireThis.php" Datei, editierst die MySQL Daten und änderst die konstante "PHP_PATH" auf den absoluten Pfad auf dem dein Ordner liegt.
    Wenn zum Beispiel dein CMS auf dem Root Verzeichnis liegt, dann lautet der Code

    PHP
    define('PHP_PATH', $_SERVER['DOCUMENT_ROOT'].'/');

    Nun öffnest oder erstellst du eine Datei und schreibst relativ weit oben
    require 'RequireThis.php';
    rein. Nun kannst du in dieser Datei die Funktionen der Klasse benutzen.

    Download: UserClass.RAR


    Ich werde die Klassenbibliothek in unregelmäßigen Abständen erweitern und neue Funktionen hinzufügen.
    Falls ihr ein Plugin erstellt habt, könnt ihr es gerne hier unter diesen Thread posten.

    Du hast Verbesserungsvorschläge oder einen Fehler zu melden?
    Schreibe doch einen Post unter diesem Thread oder mir eine private Nachricht.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!