【发布时间】:2016-11-17 11:43:07
【问题描述】:
最近我开始尝试做更多基于 OOP 的编程,因为我知道它比过程式编程要好得多,但我有一个可能很简单的问题。如果我想实现一个“任务”类,其中每个任务都有一个标题、描述、完成的程度以及提交者。我有以下代码来创建类:
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;
}
}
我的问题是,如果我创建一个任务,然后像关闭浏览器一样稍后访问它,然后在几天后更新它时返回它,我该如何存储它并重新访问它。我了解数据库并经常在我用来学习的当前站点中使用它们,但是当我假设您可以跳过课程并使用数据库时,我看不出将课程中的信息存储在数据库中是合乎逻辑的。我读到您可以将 XML/json 序列化或存储在一个文件中并以这种方式访问该类,但是如果您可以将一个文件读入一个数组并以这种方式使用它,我还是不明白为什么需要该类。我知道 OOP 很重要,但我仍在努力将其归结为可以开始定期使用类的地方,以便我可以熟悉它们并作为程序员取得进步。我确信网上有很多关于他的资料,但我一直在寻找关于将类变量存储在会话变量中的东西,这并不是我想要的。如果有什么我可以澄清的,请告诉我,我知道当我第一次上课时,我会做类似$task1 = new Task(...); 的事情,但是在关闭浏览器并重新登录后,我仍然无法访问$task1,对吗?我不能只做$task1->getTitle(); 那么我该如何重新初始化课程呢?
【问题讨论】:
-
您的问题根本不具体,我不太明白您需要什么,无论如何我建议您阅读一下,也许您应该看看 ORM stackoverflow.com/questions/1279613/… 然后 doctrine-project.org 或任何其他实现你可以自己谷歌
-
顺便说一句,你的 getter 和 setter 没用。 1) 你的属性是
public,所以可以绕过setter。 2) 您的设置者不 do 任何事情,因此在直接属性访问上没有添加任何内容。 – 只需保留您的属性public并摆脱 getter/setter。