Register for your free account! | Forgot your password?

Go Back   elitepvpers > Coders Den > Web Development
You last visited: Today at 06:33

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



Struktur / Aufbau und Sicherheit

Discussion on Struktur / Aufbau und Sicherheit within the Web Development forum part of the Coders Den category.

Reply
 
Old   #1
 
elite*gold: 0
Join Date: Apr 2008
Posts: 15
Received Thanks: 1
Struktur / Aufbau und Sicherheit

Ich habe mich bis jetzt eigentlich mit so jeder ziemlich bekannten Programmier- oder Skritptsprache, wie C/C++, C, Java, PHP und JS beschäftigt und mich wenigstens mit den Grundlagen etc. vertraut gemacht.
Dann habe ich mich als nächstes mit der Objektorientierung vertraut gemacht oder ich bin immer noch dabei. Die OOP ist ja auch ein sehr umfangreiches Gebiet und da gibt es ja auch viele verschiedene Strukturen oder "Programmaufbauten", wie z.B auch das MVC, was ja sehr bekannt ist.

Lohnt sich denn ein genauer Blick auf MVC oder gibt es da noch was bekannteres / besseres? Ich habe bis jetzt schon immer versucht, meine Programme möglichst Objektorientiert aufzubauen und dabei auch schon einige Programme erstellt, wie z.B Wer wird Millionär (C#), Kundenverwaltungssystem (C#), Textadventure (Java), Namensquiz (PHP), Blog (PHP, JS) und auch sonst noch einige kleinere Programme oder Spiele, einfach um micht weiterzubilden. Nur bin ich dabei auch immer mal wieder auf ein paar kleinere Probleme gestoßen und woher soll ich oder man so wissen, das die Lösung von einem so ganz okay ist? Der Blog befindet sich auch derzeit noch in Arbeit.

Dazu hätte ich jetzt auch mal in dem Kontext einige Fragen. Irgendwie komme ich da so alleine auch nicht weiter und ich weiß auch nicht, wonach ich da suchen soll. Da kennen sich hier ja einige mit Sicherheit sehr viel besser aus und können mir auch die entsprechenden Antworten geben.

Bei dem C# Kundenverwaltungssystem habe ich natürlich auch mit einer DB und MySQL gearbeitet und da habe ich es so gemacht, das ich dann eine Klasse Kunde hatte, die dann die Operationen auf der DB durchführt, also löschen, editieren usw. aber oft sind die Kunden ja auch dann noch einmal selbst einmal in einem Array oder so gespeichert oder irre ich mich da jetzt? Warum macht man das? Bringt das irgendwelche Vorteile? Ich stelle mir das eher schlecht vor, wenn man dann bspw. beim Start der Anwendung alle Kunden holt und dann irgendwie zum Ende synchroinisert oder so? Bei vielen Kunden vor allem, ist dann ja auch ein dementsprechend großes Array nötig.

Ich habe jetzt bei der Anwendung ja wie gesagt nur die Operationen in der Klasse Kunde aber keine Attribute in der Klasse, wie Name, Geburtsdatum etc.
Wäre das also okay oder sollte man die Kunden auch wirklich intern speichern, auch wenn man eine DB hat?

In meinem aktuellen Projekt, dem Blog komme ich grad auch nicht weiter und dazu hätte ich auch einige Fragen. Ich interessiere mich auch sehr für die Themen Sicherheit und auch, wie man das ganze gut Strukturiert, in Sachen Webandwendung oder auch allgemein. Hier hätte ich einige Fragen, erst einmal zur

Struktur:
1) Wie sollte die Ordnerstruktur am besten auf dem Server aussehen? Derzeit habe ich ein Verzeichnis für das Frontend und Backend, wo die PHP Dateien liegen. Eins für die CSS Dateien, eins für die Bilder (images), eins für die js Dateien (js) und eines für die HTML Dateien (Templates) als Smarty Datei gespeichert. Ich habe auch noch die eine Config und eine Initalisierungdatei direkt im var/www/html Verezichnis liegen.
2) Ich habe im meinem Blog Projekt jetzt leider auch noch viele einzelne PHP Dateien aber keine Klassen. Das wollte ich dann auch auf jeden Fall noch in Klasse umwandeln aber braucht man dann eigentlich überhaupt noch so einzelnen PHP Dateien oder sollten das alles PHP Klassen sein?
3) Ich habe jetzt ja auch in meinem Blog Projekt eine Klasse, die bspw. die Operationen auf der DB für die Einträge darstellt. Sollte man da auch wieder eine Collection haben, wo dann die Einträge gespeichert werden? Also eine interne Repräsentation oder reichen da die Operationen, wie Entry.Delete(.. ) usw. (also keine interne Repräsentation)?
4) Ich habe derzeit auch in vielen Dateien zigtausende includes stehen und da muss man ja auch immer jeweils den Pfad angeben, was ich dann auch über die index.php Datei mache aber wie hält man sowas einfacher? In der index.php muss ich dann ja jeden Pfad zu der Datei so angeben. Wie hält man das einfacher, sodass man auch nicht jede Datei so angeben muss oder jeden Pfad? Kommt mir irgendwie kompliziert oder "umständlich" vor.
PHP Code:
<?php
     
....
    
$site = isset($_GET['site']) ? $_GET['site'] : ''
    
    switch(
$site)
    {       
        
// ....
            
        
case 'guestbook':
            include(
'Frontend/guestbook.php');
            break;
            
        case 
'no-access':
            include(
'no-access.php');
            break;
            
            
        
// ...
    
}  
?>
5) Sollte man Javascript Klassen eigentlich auch so definieren, wie hier in der ausgewählten Antwort bei Stackoverflow

oder sollte man einfach nur Funktionen machen und das war's? Ich habe jetzt derzeit einfach nur so Funtkionen gemacht. In Javascript ist das ja auch ganz anders, als wie z.B in PHP über eine Instanz.
PHP Code:
Test test = new Test(); 
Dann zur Sicherheit:
1) Wie lagert man die Dateien sicher auf dem Server, sodass der Zugriff auf wichtige Dateien nicht möglich ist? Wo lagert man die Sachen dann konkret auf dem Serve. Wo die HTML Dateien, PHP Dateien ... ? Ich habe derzeit wie oben schon geschrieben alles im var/www/html Verzeichnis liegen.
2) Wie sichert man Dateien ab, die sich im Backend befinden, also sodass nur der Berechtigte Zugriff darauf hat? Reicht da eine einfache Überprüfung mit der Session "auth" oder "loggedIn" oder wie auch immer oder muss man da noch etwas machen?
4) Wie könnte man da eine Weiterleitung realisieren, sodass wenn man schon eingeloggt ist, weitergeleitet wird oder wenn man nicht eingeloggt ist, das man dann zum Login weitergeleitet wird?
4.1) Zudem wäre es da auch nett, wenn man dann auch nach dem erfolgreichem Login zur gewollten Seite weitergeleitet wird. Wie macht man das?
Dazu auch mal was von mir:
Derzeit habe ich das auch so in PHP gelöst, also wenn ich nicht eingelogtt bin, was ich auch wieder mit der Session prüfe, dann wird man mit
PHP Code:
echo '<meta http-equiv="refresh" content="1; url=index.php?site=no-access">'
zur no-access Seite weitergeleitet und die leitet dann zur Login Seite weiter. Da wird dann auch oben, mit einem zusätzlichen $_GET Paramter (goto derzeit) die Seite jeweils mitgegeben. Ob das jetzt eine gute Lösung ist, weiß ich nicht aber so funktioniert es derzeit schon einmal. Die index.php Datei nutze ich auch zur Weiterleitung, sodass oben nicht direkt der Name der Datei steht, sondern bspw. einfach nur index.php?site=guestbook usw.
5) Sollte man eigentlich alle HTML Dateien auch als PHP Datei speichern? Ich meine, dss ich das irgendwo gelesen habe aber warum oder ist das falsch?

Das wäre dann auch alles. Ich hoffe mal, das trotz der vielen Fragen jemand antwortet aber ich weiß teilweise auch nicht, wonach ich da suchen soll oder wo man dazu gute Informatonen, Anleitungen etc. findet. Außerdem kann ich mir ja die Frage derzeit noch nicht selber beantworten, ob meine Lösung so gut ist, da ich ja noch mehr oder weniger "Anfänger" in der OOP bin.

Über Hilfe, Tipps, Links oder Literaturvorschläge und Ratschläge würde ich mich sehr freuen!
GeKiller is offline  
Old 11/13/2015, 11:25   #2
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Uff, also du stellst hier enorm viele Fragen auf ein Mal, die man aber alle mit einem extra Thread bearbeiten könnte.
Ich kümmere mich jetzt (aus Faulheit) einmal um den wohl größten/wichtigsten Punkt in deiner Frage.
Ein Großteil deines Posts lässts sich zusammenschmelzen auf die Frage:
"Wann benutze ich Klassen und wie sollen sie aussehen, wenn ich Wert auf guten Programmierstil lege?"

Diese Frage kann man sehr umfangreich beantworten und Details hängen immer von den jeweiligen Vorlieben des Befragten ab.
Dennoch werde ich hier jetzt einmal meine Sichtweise auf die Klassen-Frage darlegen.
Ich denke die Mehrheit wird ähnliche Gedanken haben (aber wohl sicher nicht exakt dieselben).

Erst einmal zur Frage: "Wann benutze ich Klassen?"
Klassen sollen es dem Entwickler ermöglichen die Wirklichkeit/Probleme in Objekten darzustellen.
Ein sehr beliebtes und triviales Beispiel ist da tatsächlich dein Kundensystem.
Je nachdem wie umfangreich dein Projekt ist, kann man sicher viele Klassen benutzen. Ich werde dir nach dem positiv Beispiel auch einmal ein negativ Beispiel (leider von Java-Leuten sehr oft praktiziert, zumindest wenn ich einen Blick auf den Code von meinen Kollegen in der Firma so habe) vorlegen.

Sagen wir einmal die konkrete Aufgabenstellung war:
Quote:
Schreibe ein Verwaltungssystem, welches einen/mehreren Administratoren und Moderatoren die Möglichkeit gibt Kunden und deren Einkäufe effektiv zu verwalten.
Mein Schullehrer (auch wenn er programmiertechnisch ne Pfeife war) meinte bei solchen Aufgaben immer:
Quote:
Ihr könnt Pi-mal-Daumen für jedes Nomen in der Frage eine Klasse erstellen.
Das möchte ich so zwar nicht unterzeichnen, aber wenn man gar keine Vorstellung hat, welche Klassen man braucht, ist das eine befriedigende erste Näherung.
Also fangen wir einmal an, laut seiner Aussage hätten wir also die Klassen:
Verwaltungssystem, Administrator, Moderator, Kunde, Einkauf

Der nächste Schritt, um einmal auszusortieren, welche Klassen man wirklich braucht, liegt darin zu schauen ob man für jede Klasse auch wirklich 1-2 Sätze schreiben kann, was sie macht.
Gute Beschreibungen wären zum Beispiel:
Quote:
1. Verwaltungssystem: Das System ermöglicht das Löschen, Einfügen, Ausgeben und etliche weitere Operationen (Gewinn/Umsatzrechnung, etc.). Zusätzlich stellt es eine Verbindung zwischen Datenbank und Nutzer her.
2. Administrator: Diese Klasse ermöglicht es ganz bestimmten Benutzern verschiedene Kunden zu löschen/abzumahnen/etc.
...
Schlechte Beschreibungen sind:
Quote:
1. Verwaltungssystem: Ein System zur Kundenverwaltung.
2. Administrator: Administration
Wenn man eine Klasse findet für die man sehr lange nachdenken muss, was sie macht oder wo der Unterschied zwischen Klasse X und Y liegt, sollte man sich überlegen diese Klasse zu entfernen.
In unserem Beispiel würde das auf die Klasse Administrator und Moderator zutreffen. Diese zwei Klassen unterscheiden sich nur marginal.
Also würde ich (hier gibt es sicher auch Einige, die sagen das ist Schwachsinn; Die Begründung für meinen Weg folgt später) diese Klasse zu einer zusammenfassen.

Als nächstes überlegt man sich die Abhängigkeiten zwischen den Klassen und wenn man eine Klasse findet, die nirgends benutzt wird oder man nicht weiß was sie tun oder speichern soll, fliegt sie ebenfalls raus.
Bei unserem Beispiel gibt es keine derartige Klasse.

Der letzte Schritt ist mein persönliches Optimum und du wirst von Vielen hören, dass diese Schritt einfach falsch ist, selbst in einschlägiger Literatur wirst du etwas derartiges lesen.
Und dennoch bevorzuge ich noch folgenden letzten Schritt zu machen:
Ich stelle mir die Frage, ob ich Klassen sehr einfach zusammenfügen kann.
Also nicht nur, ob zwei Klassen offensichtlich zusammengehören (wie Admin und Moderator), sondern auch, ob ich (mit kleinem Mehraufwand) zwei Klassen zusammenlegen kann.

In diesem Beispiel würde ich zum Beispiel noch Kunde und Admin bzw. Moderator zusammenlegen.

Grund für diese Zusammenlegung ist meine "Fantasie" und "Kreativität".
Beim Zusammenlegen überlege ich mir, was ich mir in Zukunft für Vorteile von der nicht strikten Trennung erhoffe.
Die Vorteile, die ich mir erhoffe sind dabei folgende:
Quote:
1. Ein Kunde kann im Laufe des Projektes ebenfalls gewisse Rechte bekommen ohne Admin oder Moderator sein zu müssen (es gibt also kein Schwarz-Weiß-Denken, sondern die Übergänge können, wenn gewollt, fließend sein).
2. Es gibt weniger Klassen, die großteils ähnlich sind/voneinander erben (das ist bei großen Projekten echt Horror, ich werde dazu aber auch später noch einmal erklären wieso das meine Meinung ist).
3. Kunden und Administratoren können auf dieselbe Art und Weise gespeichert werden (es gibt keine Sonderfälle/extra Behandlungen bei der Speicherung)
Ich möchte noch einmal betonen, dass das lediglich meine persönliche Meinung ist und jeder einen anderen Geschmack haben kann/darf/wird.

Wenn wir also fertig sind mit unserem "Mergen", bleiben noch folgende Klassen übrig:
Verwaltungssystem, Kunde, Einkauf

Genau diese Klassen würde ich jetzt auch anfangen zu implementieren.
Am besten fängt man damit an sich grob die Funktionen, die man unbedingt braucht zu überlegen, wieso sehen wir gleich noch.
Dabei stelle ich mir in etwa folgende Struktur vor:

Verwaltungssystem besitzt folgende Methoden:
PHP Code:
insertUser(...)
deleteUser(...)
createUser(...)
getMean(...)
getAllUserFromUntilToday(...)
tryLogIn(...)
checkSessionOfUser(...)
... 
Folgende Variablen könnten praktisch sein (je nachdem was man damit machen möchte und wie oft man sie braucht):
PHP Code:
loggedInUserCount
overAllUser
... 
Beim Kunden könnte man folgendes haben:

Methoden:
PHP Code:
getAllShoppedItems(...)
getUserRegistrationDate(...)
isLoggedIn(...)
logIn(...)
addItemToShoppingItems(...)
deleteUser(...)
... 
Attribute:
PHP Code:
currentSession
currentShoppingContent
lastRegistration
rights
... 
Beim Einkauf folgendes:

Methoden:
PHP Code:
addItem(...)
removeItem(...) 
Attribute:
PHP Code:
sumToPay
addedItems
... 
Spätestens jetzt stellt man sich die Frage:
"Wie lasse ich denn überhaupt Sachen, die man kaufen kann speichern?"
Und dafür bietet sich jetzt wieder eine Klasse an, ich nenne sie einfach mal "Item".

Demnach haben wir jetzt vorerst:
Verwaltungssystem, Kunde, Einkauf, Item

Das ist jetzt auch unser finales SetUp und wir können endlich das Programmieren anfangen.

Aber kommen wir noch einmal zurück zu der Frage, wieso wir jetzt aus anfänglich 3 Klassen (Kunde, Admin und Mod) eine Klasse gemacht haben.
Der Schlüssel liegt darin, dass sich die 3 Klassen nur darin unterscheiden, was sie dürfen. Außerdem können Admins und Mods ja auch Kunden sein.
Was wir jetzt jedoch bedenken müssen, ist jedes mal wenn ein User höhere Rechte für eine Aktion braucht, diese zu prüfen.
Also ganz einfach (am Beispiel der Methode deleteUser(...)):
PHP Code:
function deleteUser(userToDelete)
{
    if (
rights >= MOD_RIGHTS)
       return 
doDeletion(...);
    else
       return 
false;

Wieso jetzt also nicht einfach drie Klassen dafür anlegen?
Ich möchte auch einmal betonen, dass ich bis vor knapp 2 Jahren genau das auch gemacht hätte.
Aber ich wurde vor kurzem sehr effektiv vom Gegenteil überzeugt.

Meine Aufgabe in der Firma, in der ich arbeite, war es alte Java-Implementierungen in HTML5 und Javascript umzuwandeln mit möglichst demselben Funktionsumfang.
Der liebe Kollege, der den Java-Code geschrieben hatte, hat schon aufgehört hier zu arbeiten und war nicht mehr erreichbar, also musste ich mich durch sporadisch dokumentierte Methoden und etliche Klassen (insgesamt 60) durchschlagen.
Die Aufgabe des Java-Codes war sehr knapp zusammengefasst folgende:

Quote:
Du bekommst eine Datei aus dem Netz geliefert, diese sollst du parsen und anschließend plotten lassen.
Ihr fragt euch sicher, wie man da auf 60 Klassen kommt und ich habe mich das auch gefragt, jedoch hat er wirklich alles was eine extra Klasse rechtfertigte zu einer gemacht.

Ein Beispiel dazu:
Es gab eine Klasse Plotter, welche 2 Objekte der Klasse Achse (für X und Y Achse) enthielt.
Die Klasse Achse wiederum vererbte ihre Methoden und Attribute an die Klasse X-Achse bzw. Y-Achse.
Zusätzlich enthielt die Klasse Achse 2 weitere Objekte, ein Objekt war dabei von der Klasse AchsenBeschriftung und das andere Objekt (bzw. Array) von der Klasse AchsenLinie (also die Linie, die man über die Zahlen zeichnet, damit man genau weiß wo diese Zahl ist).
AchsenBeschriftung wiederum vererbte ihre Methoden/etc. an eine Klasse AchsenBeschriftungX und AchsenBeschriftungY.
Analog dazu verlief es bei der Klasse AchsenLinie.

Das Ganze wurde ebenso mit etlichen anderen Objekten fortgeführt und damit kam man auf rund 60 Klassen.

Das Ganze ist natürlich sehr intuitiv, man braucht nicht viel beschreiben, weil man relativ sofort weiß was wo passiert und gemeint ist.
Aber was ich mir beim Durchgehen dachte war einfach nur ein:
"WTF?! So viele Klassen, die alle nur 1-2 Methoden/Attribute besitzen."
Immer wenn ich wissen wollte, was hat variable X in zeile Y gemacht, musste ich erst einmal rausfinden von welcher Klasse es jetzt genau war.
War es AchsenBeschriftung oder doch AchsenBeschriftungX bzw. AchsenBeschriftungY?
Das hat mich sehr oft zu Weißglut gebracht. Vor allem weil ich dann am Ende 50 Dateien offen hatte zwischen denen ich immer hin- und herspringen musste, um zu sehen welche Methode jetzt vererbt wurde/welche nicht, welche überladen wurde, ... .
Es war echt eine Qual und wozu das alles?
Nur weil jemand meinte alles mit Klassen zukleistern zu müssen.

Mein persönlicher Ansatz im Javascript konnte auf rund 10 Klassen runtergebrochen werden und ich habe aus der ganzen Achsen-Klasse, in etwa folgendes gemacht:

Klasse Achse:
Methoden:
PHP Code:
drawAxis(orientationvalueArray)
drawAxisX(valueArray)
drawAxisY(valueArray)
calculateGoodValuesForAxis(orientation, ...) 
Ich habe also aus dieser ganzen Aufbröselung in 2 Klassen für X und Y lediglich meinen Methoden einen Parameter "orientation" spendiert, welcher aussagt, ob x oder y Achse gezeichnet werden soll.
In den Methoden musste ich dann zwar ein

PHP Code:
if(orientation==X_AXIS)
...
else
... 
machen, aber ich bin mir sicher etwas derartiges liest man um Längen lieber als sich jetzt durch 6 Klassen durchzuhangeln und für jede anzuschauen, was jetzt wann wo und wie vererbt wird.
Abgesehen davon ist das Ganze natürlich Performance-technisch viel schneller als erst 4 verschiedene Objekte dereferenzieren zu müssen.

Es ist meiner Meinung nach wichtig einen guten Mittelweg zwischen Klassen/Abstraktion und prozeduraler Programmierung zu finden, wobei ich für mich persönlich entschieden habe (wegen den genannten Aspekten und weil ich sehr viel Wert auf Performance lege) eher zu prozedural zu programmieren als zu objektorientiert.

Edit:
Als kleine Anmerkung:
Normalerweise willst du nicht alle Benutzer/Kunden gleichzeitig im Arbeitsspeicher halten.
Wenn man jedoch berechnen will wie viel Gewinn man seit Monat X gemacht hat, ist es sinnvoll die Kunden, seit Monat X im Arbeitsspeicher zu halten, damit man schnell und einfach drüber iterieren kann, weil die Festplattenzugriffe (selbst mit SSD) halt immer noch relativ langsam sind (Das war zwar ein schlechtes Beispiel, weil den Befehl SUM gibt es ja auch in SQL, aber stell dir einfach vor du stellst irgendwelche komplexen Berechnungen an).

Auch wenn du einen Benutzer sehr oft brauchst in relativ kurzer Zeit, macht es Sinn diesen im Arbeitsspeicher zwischenzuspeichern und nach X Sekunden/Minuten/Berechnungen wieder zu löschen.

Also zusammengefasst:
Normalerweise willst du so wenig Benutzer wie möglich gleichzeitig im Arbeitsspeicher haben, aus Performancegründen speichert man sich jedoch ab und an Benutzer (manchmal auch sehr viele) in den Arbeitsspeicher und rechnet mit denen.
Shadow992 is offline  
Thanks
3 Users
Old 11/17/2015, 13:54   #3
 
elite*gold: 0
Join Date: Apr 2008
Posts: 15
Received Thanks: 1
@Shadow992
Danke für die Antwort soweit schon einmal! Ist ja auch schon eine Menge, die du da zusammengeschrieben hast und man kann es gut lesen. Zudem ist auch noch gut verständlich erklärt.

Das mit dem Nomen kannte ich auch schon aber danke für die ganzen Tipps. Letendlich finde ich das mit den Klassen mit 1-2 Methoden eigentlich auch übertrieben aber ob man unbedingt davon ablassen sollte? Keine Ahnung.

Der Mittelweg scheint mir auch der beste zu sein, um nicht immer überall hin und her wechseln zu müssen aber ob es auch der beste im Programmiertechnischem Sinn ist, ebenfalls keine Ahnung.

Dann noch einmal zu der Klasse Benutzer, oder wie auch immer Sie heißt;
Heißt das jetzt, das du aber trotzdem eine Klassenimplementation eines Benutzer haben würdest oder reichen da dann die Methoden, wie ich sie oben genannt habe, mit löschen, bearbeiten usw, wie ich sie jetzt habe?

Das mit dem Gewinn macht dann natürlich schon Sinn aber es gibt ja auch viele Datenbankoperationen, wie sum, count usw.

---------------------------------------

Wäre natürlich schön, wenn sich da dann auch noch jemand vielleicht zumindest auf ein paar Fragen beziehen könnte, gerne aber natürlich auch auf alle.
GeKiller is offline  
Old 11/18/2015, 16:51   #4
 
Shadow992's Avatar
 
elite*gold: 77
Join Date: May 2008
Posts: 5,430
Received Thanks: 5,878
Quote:
Originally Posted by GeKiller View Post
@Shadow992
Danke für die Antwort soweit schon einmal! Ist ja auch schon eine Menge, die du da zusammengeschrieben hast und man kann es gut lesen. Zudem ist auch noch gut verständlich erklärt.

Das mit dem Nomen kannte ich auch schon aber danke für die ganzen Tipps. Letendlich finde ich das mit den Klassen mit 1-2 Methoden eigentlich auch übertrieben aber ob man unbedingt davon ablassen sollte? Keine Ahnung.

Der Mittelweg scheint mir auch der beste zu sein, um nicht immer überall hin und her wechseln zu müssen aber ob es auch der beste im Programmiertechnischem Sinn ist, ebenfalls keine Ahnung.

Dann noch einmal zu der Klasse Benutzer, oder wie auch immer Sie heißt;
Heißt das jetzt, das du aber trotzdem eine Klassenimplementation eines Benutzer haben würdest oder reichen da dann die Methoden, wie ich sie oben genannt habe, mit löschen, bearbeiten usw, wie ich sie jetzt habe?

Das mit dem Gewinn macht dann natürlich schon Sinn aber es gibt ja auch viele Datenbankoperationen, wie sum, count usw.

---------------------------------------

Wäre natürlich schön, wenn sich da dann auch noch jemand vielleicht zumindest auf ein paar Fragen beziehen könnte, gerne aber natürlich auch auf alle.
Ich würde eine Klasse Benutzer anlegen, weil es schon Sinn macht (wenn man sich Benutzer im Speicher halten will) diese auch als Objekt zu besitzen, um die Daten dazu auch im Speicher halten zu können.

Wenn du deine Daten wirklich nie brauchst, sondern nur genau einmal pro Request und auch nur genau 1-2 Rechnungen lang, macht es natürlich keinen Sinn ein extra Objekt zu erstellen, dann reichen die Funktionaufrufe auch, wobei ich sie dann trotzdem in eine Klasse oder bessere einen namespace wrappen würde, damit es relativ eindeutig ist, was passiert und wozu es gehört.
Shadow992 is offline  
Reply


Similar Threads Similar Threads
Globale Struktur - Playstation 3
04/15/2013 - Consoles - 0 Replies
Hallo liebe Community, im Internet gibt es zwar viele Informationen, die aber oft unterschiedliches behaupten. Aus diesem Grund will ich hier noch einmal nachfragen. Ich muss für die Schule einiges raussuchen, was einem durch verschiedene Angaben ziemlich schwer gemacht wird. Bitte nur Antworten wenn ihr genaue Angaben habt. Bereiche: -Produktion (Wo, Seit wann, Verarbeitung, etc.) -Produktionsmengen (Import, Export, BSP, etc.) -Transport Liebe Grüße, Yasunai
[Suche] Puzzle Struktur für PS5
12/11/2011 - General Art - 7 Replies
^Steht oben Danke
Struktur der Account tabelle
08/17/2011 - Metin2 Private Server - 0 Replies
Hi, kann mir mal bitte / netterweise einer die Struktur der Account tabelle sagen? Ich brauch die Struktur von spalte login, password und email. also z.B. so "spalte:id" INT( 7 ) NOT NULL AUTO_INCREMENT. WICHTIG!!! ich brauche die Kollation also z.B. INT DANKÖ



All times are GMT +1. The time now is 06:33.


Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2025 elitepvpers All Rights Reserved.