Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
创建oop php博客_Php_Oop - Fatal编程技术网

创建oop php博客

创建oop php博客,php,oop,Php,Oop,嗨,我正在尝试开发一个面向对象的php驱动的博客。我是php中oop的新手,所以它的速度非常慢。我有一个BlogPost类,我已经为数据库中我的blog字段中的行以及它们的getter和setter创建了私有变量,例如: function getCreated() { return $this-$created; } function setCreated($created) { $this->$created = $created; } 这样做吗?!我想我的思路是对

嗨,我正在尝试开发一个面向对象的php驱动的博客。我是php中oop的新手,所以它的速度非常慢。我有一个BlogPost类,我已经为数据库中我的blog字段中的行以及它们的getter和setter创建了私有变量,例如:

function getCreated() {
    return $this-$created;
}

function setCreated($created) {
     $this->$created = $created;
}
这样做吗?!我想我的思路是对的,但我不确定。有人有什么意见吗?!也许有一些关于如何创建博客oop php风格的好教程的提示。在net.tuts上找到了一个,但我不是很喜欢它。谢谢

你很接近了,试试看

function getCreated() {
    return $this->created;
}

function setCreated($created) {
     $this->created = $created;
}

就我个人而言,我避免使用getter和设置,只使用公共属性。然后,我使用
\uu set()
魔术方法侦听正在设置的属性,并将密钥添加到私有
$dirty
数组中。然后,我可以在保存记录时循环这些。例如:

class BlogPost {

    public $id;
    public $title;
    public $content;

    private $dirty;

    function __set($key, $value) {
        $this->$key = $value;
        $this->dirty[] = $key;
    }

    function save() {
        if (isset($this->id) && intval($this->id) > 0) {
            // do UPDATE query
        } else {
            // do INSERT query
        }
    }
}
然后使用:

$id = (isset($_GET['id'])) ? intval($_GET['id']) : null;

$post = new BlogPost();
$post->title = $_POST['title'];
$post->content = $_POST['content'];
$post->save();

非常原始,但应该给你一个如何自己实现这一理论的想法。

为什么不使用wordpress?编程的核心原则之一是不要重新发明轮子。除非你的博客引擎正在解决博客引擎问题领域中尚未解决的问题,那么为什么不求助于现成的引擎呢?@jigfox和@gordon:通常我不会这么做,但这是我必修课程的一部分,所以这是必修课。任务是构建一个博客oop php风格。@Gordon我相信您已经用以前已经完成的代码编写了一些东西。从零开始编写这样的解决方案是一种很好的学习方法,因为这样你就能理解为什么某些东西是这样构建的,并能更快地解决其他人代码中的问题。感谢你的反馈,我应该知道,我们可以称之为:)。但是有一件事,您将如何为此创建构造函数?我的想法是这样的:公共函数构造($id,$created,$modified,$author,$title,$body){$this->$id=}再次输入:
$this->$id
应该是
$this->id
是的,只要去掉属性前面的美元符号就行了$此->$id将查找与变量$id中的值同名的属性,这是您不需要的。