Public zend 2 文档中的实体属性 - 好吗?

Public entity properties in zend 2 documentation - is it good?

我正在用 zend 2 框架编写应用程序。我没有使用过它,前段时间可能用 zend 1 完成了一个小应用程序。

我看到了对我来说不寻常的地方 - public 属性。我认为这很糟糕。但是 zend 正在展示这样的例子:

namespace Album\Model;

 class Album
 {
     public $id;
     public $artist;
     public $title;

     public function exchangeArray($data)
     {
         $this->id     = (!empty($data['id'])) ? $data['id'] : null;
         $this->artist = (!empty($data['artist'])) ? $data['artist'] : null;
         $this->title  = (!empty($data['title'])) ? $data['title'] : null;
     }
 }

https://framework.zend.com/manual/2.3/en/user-guide/database-and-models.html

适合这种情况吗?为什么?

为了这些示例,zend 倾向于简化他们的代码,但是当您开发应用程序时,您必须使用您学到的最佳实践。因此,如果您认为这些财产至少应该受到保护,那就这样吧,这很好,我同意您的看法。

有时 zend,当他们解释一些东西并使用他们在控制器中使用的 ServiceLocator 时,这根本不是一个好的做法,因为 serviceLocator 不应该那样使用,另外,它已从控制器中删除在 zf3.他们再次这样做是为了解释一些概念,并且为了教程他们给出了一些错误的代码。社区因此受苦。

我建议你对 Zend 在他们的教程中给出的内容保持怀疑,更多,怀疑,他们只是解释功能,但你不应该只是盲目复制他们提供的内容。只有理解他们的意思。