Wie oben schon erwähnt benutzte ich kein Framework. Möchte dies eig auch noch vermeiden.
Dieser wird nur dafür verwendet um beim Programmieren sofort zu merken das man ein Catch Block vergessen hat? Oder übersehe ich da was?Quote:
Fürs Exception fangen -> [Only registered and activated users can see links. Click Here To Register...]
Damit bekommst du jede Exceptions mit und kannst diese weiter verweden, z.b. in eine Datenbank eintrage, per Mail verschicken oder auch einfach nur in eine Datei loggen.Quote:
Dieser wird nur dafür verwendet um beim Programmieren sofort zu merken das man ein Catch Block vergessen hat? Oder übersehe ich da was?
Bin derzeit bei meiner Methode "updatePassword"
Nun frag ich mich ruf ich die Methode auf indem ich
$oUserDao->updatePassword("password", 23);
oder
$oUserDao->updatePassword($oUser);
aufrufe.
Natürlich würde dann im oUser das neue Passwort sowie die Id stehen. Derzeit ist das mitführen des Passwort im oUser noch nicht mal vorgesehen ich wüsste aber nicht was da gegen spricht bis auf ein bisschen Byte Verbrauchung.
Werde ich mir merken. Die Exception Behandlung mach ich etwas später bis ich mehrere Methoden habe und ich ca. weiß was ich brauche.Quote:
Damit bekommst du jede Exceptions mit und kannst diese weiter verweden, z.b. in eine Datenbank eintrage, per Mail verschicken oder auch einfach nur in eine Datei loggen.
Ja o steht nur für Object dies schreibe ich eig. bei jeder Variabel dazu. (Außer bei Statements und deren Verarbeitung siehe letzte Methode) Ich weiß in PHP braucht man darauf eig. nicht zu achten ich finde es aber Übersichtlicher. Spätestens wenn man sich den Code ein halbes Jahr später anschaut erleichtert dir das einiges.Quote:
wobei ich das kleine o am Anfang nicht raffe, genauso wie ich nicht DAO schreiben würde sondern Controller...
Wenn das o für Object steht ist es etwas sinn frei, oder schreibst du das bei Jeder Variable?
Also auch $iAge $sName $dBirthday ?
Wenn du dein eigenen Code in einem halben Jahr nicht wieder erkennst, dann solltest du über die Art wie du dein Code schreibst nachdenken...Das "o" ist einfach nur nutzlos und für andere evtl. verwirrend ^^Quote:
Ja o steht nur für Object dies schreibe ich eig. bei jeder Variabel dazu. (Außer bei Statements und deren Verarbeitung siehe letzte Methode) Ich weiß in PHP braucht man darauf eig. nicht zu achten ich finde es aber Übersichtlicher. Spätestens wenn man sich den Code ein halbes Jahr später anschaut erleichtert dir das einiges.
Sorry aber das ist die dümmste Aussage die ich bis jetzt gehört habe. Schreib mal deine 20.000 Zeilen Code innerhalb von 3 Monaten, setz dich 3 Monate an ein anderes Projekt und komm wieder hin. Einerseits sagst du er soll seinen Code schreiben wie er will, andererseits soll er es nicht so machen.Quote:
Wenn du dein eigenen Code in einem halben Jahr nicht wieder erkennst, dann solltest du über die Art wie du dein Code schreibst nachdenken...Das "o" ist einfach nur nutzlos und für andere evtl. verwirrend ^^
Evtl. solltest du erst nach denken dann schreiben, den es macht sinn.Quote:
Sorry aber das ist die dümmste Aussage die ich bis jetzt gehört habe. Schreib mal deine 20.000 Zeilen Code innerhalb von 3 Monaten, setz dich 3 Monate an ein anderes Projekt und komm wieder hin. Einerseits sagst du er soll seinen Code schreiben wie er will, andererseits soll er es nicht so machen.
Die ungarische Notation war (und ist bei einigen großen Firmen) noch immer Gang und Gebe. Es gab damals halt noch keine genauen Möglichkeiten Bezeichnungen einzufügen, wenn es für andere verwirrend ist dann einfach nur aus einem Grund: Sie haben nicht das nötige Wissen über eine der grundlegenden Notationen in der Programmierung und sollten darüber am besten auch nicht philosophieren ;)
es ist ihm zwar frei überlassen aber man sollte es wenn schon vernünftig machenQuote:
Wenn du nicht gerade mit einem Framework arbeitest, ist es dir eigentlich frei überlassen, wie du deine Klassen strukturieren willst. Vor deinem Problem stehen Viele, die gerade mit OOP anfangen. Das Prinzip von Gettern&Settern hast du ja anscheinend verstanden. Außerdem sei noch gesagt, dass du OOP und prozedurale Programmierung "mischen" kannst. Nun zu deinen Methoden: Deine Userklasse könnte z.B. so aussehen:
PHP Code:class User
{
private $db;
function __construct($connection)
{
$this->db = $connection;
}
public function register(...)
{
// Daten in Datenbank eintragen
}
public function login($username,$password)
{
// Mit Daten aus Datenbank vergleichen und ggf. die Session setzen mit z.B. der UserID
}
public function hasValidLogin()
{
if(isset($_SESSION['user']))
{
return true;
}
}
public function logout()
{
session_destroy();
unset($_SESSION['user']);
return true;
}
}
Deine index.php könnte z.B. so aussehen
PHP Code:<?php
$connection = new mysqli(...);
$user = new User($connection);
if ($user->hasValidLogin())
{
// User weiterleiten
}