Kürzlich habe ich angefangen zu versuchen, mehr OOP-basierte Programmierung zu tun, wie ich weiß, es ist viel besser als prozedurale Programmierung, aber ich habe eine wahrscheinlich einfache Frage. Wenn ich eine "Aufgaben" -Klasse implementieren möchte, in der jede Aufgabe einen Titel, eine Beschreibung, eine Angabe, wie weit sie abgeschlossen ist und wer sie eingereicht hat. Ich habe den folgenden Code, um die Klasse zu erstellen:PHP Klassenvariablen zwischen Instanzen
class Tasks
{
public $title;
public $description;
public $completionPercent;
public $contact;
public function __construct($title, $description, $completionPercent, $contact)
{
$this->title = $title;
$this->description = $description;
$this->completionPercent = $completionPercent;
$this->contact = $contact;
}
public function getTitle()
{
return $this->title;
}
public function getDescription()
{
return $this->description;
}
public function getCompletionPercent()
{
return $this->completionPercent;
}
public function getContact()
{
return $this->contact;
}
public function setTitle($title)
{
$this->title = $title;
}
public function setDescription($description)
{
$this->description = $description;
}
public function setCompletionPercent($completionPercent)
{
$this->completionPercent = $completionPercent;
}
public function setContact($contact)
{
$this->contact =$contact;
}
}
Meine Frage ist, wenn ich eine Aufgabe erstellen und dann später zugreifen, wie in den Browser schließen und dann, um es kommen wieder ein paar Tage später, als ich ein Update haben Wie kann ich es speichern und wieder darauf zugreifen? Ich verstehe Datenbanken und verwende sie sehr oft in meinen aktuellen Seiten, die ich benutze, um zu lernen, aber ich sehe nicht, wie das Speichern der Informationen aus der Klasse in der Datenbank logisch wäre, wenn ich annehme, dass man die Klasse einfach überspringen und die Datenbank nutzen könnte. Ich habe gelesen, dass Sie XML/JSON in einer Datei serialisieren oder speichern können und auf die Klasse zugreifen können, aber ich sehe auch nicht, warum Sie die Klasse benötigen würden, wenn Sie einfach eine Datei in ein Array lesen und so verwenden könnten. Ich weiß, dass OOP wichtig ist, aber ich versuche immer noch, dorthin zu kommen, wo ich anfangen kann, Klassen regelmäßig zu benutzen, damit ich mich mit ihnen vertraut machen und Fortschritte als Programmierer machen kann. Ich bin mir sicher, dass es im Internet viel über ihn gibt, aber ich finde immer wieder Sachen über das Speichern von Klassenvariablen in Sitzungsvariablen, was nicht genau das ist, was ich möchte. Lassen Sie mich wissen, wenn es etwas gibt, das ich klären kann, ich weiß, wenn ich zuerst die Klasse mache, würde ich etwas wie $task1 = new Task(...);
tun, aber nachdem ich meinen Browser schließe und mich wieder anmelde, kann ich immer noch nicht auf $task1
richtig zugreifen? Ich kann nicht einfach $task1->getTitle();
tun, wie kann ich die Klasse neu initialisieren?
Ihre Fragen sind nicht spezifisch, ich verstehe nicht ganz, was Sie brauchen, trotzdem würde ich Ihnen eine Lesart vorschlagen, vielleicht sollten Sie sich ORM anschauen http://stackoverflow.com/questions/1279613/what-is- an-orm-und-wo-kann-ich-lerne-mehr-über-es und dann http://www.doctrine-project.org/ oder irgendeine andere Implementierung, die du selbst googeln kannst – scx
BTW, deine Getter und Setter sind nutzlos. 1) Ihre Immobilien sind "öffentlich", so dass Setter umgangen werden können. 2) Ihre Setter * tun * nichts und fügen somit nichts über den direkten Eigentumszugang hinzu. - Bewahren Sie einfach Ihre Eigenschaften 'public' auf und entfernen Sie die Getter/Setter. – deceze