模型和域对象

时间:2013-10-07 20:07:40

标签: php database-abstraction domain-object

我读了一篇文章,讨论如何创建域对象here。 作者正在解释如何设计类。简而言之,每个真实世界的实体(即类User,Comment,Post等)和getters + setters(检查数据的有效性)都有一个类。

对于一对多关系,例如,与单个帖子相关的所有注释,作者使用数组将类Comment的实例存储到Post类的实例中。但这是我不明白的地方:

$post = new Post();

$post->addComment( new Comment() );
$post->addComment( new Comment() );
$post->addComment( new Comment() );

$postModel = new PostModel();
$postModel->insert( $post ); // Should also insert (or not !) the added comments.

当我们要插入新帖子时,相关的评论可能会或可能不会存在(我的例子没有多大意义,因为你只能评论存在的帖子,但这只是一个例子)。在添加注释之前,模型是否应检查每个添加的注释是否存在?

另外,如果你知道一篇文章可以解释如何正确地编写一个模型,在上面文章的作者所使用的相同的哲学中,这将是很好的。

1 个答案:

答案 0 :(得分:-1)

我认为首先你需要创建帖子然后添加评论,

$post = new Post();
$post->populate($postData);
$post->save();
$post->addComment( new Comment() );

或选择您添加评论的帖子

$post = new Post($idPost);
$post->addComment( new Comment() );