2

我来自 .net 背景,所以我在 Lithium 中看到的空类(模型)令人不安。
在 .net 中,除非我执行以下操作,否则我没有属性:

public class MyClass()
   public property myProp as string
end class

然后我像这样设置或获取属性:

dim aClass as myClass
aClass.myProp = "some string"
dim myString as String = aClass.myProp

我在 Lithium 中看到的是动态对象,例如 javascript。
我可以声明一个任意对象并随时添加属性。现在,我并不是说这是一件坏事,我只是想知道:

  1. 如果这对于 PHP 是正常的或对于锂是正常的,并且
  2. 如果我添加属性(这样我就可以在 eclipse 中完成代码),它会损害 Lithium 的 ORM 特性吗?
4

1 回答 1

3

Lithium 相当先进,并利用了许多框架没有的一些 PHP 特性。您可以直接向 PHP 中的对象添加属性,但是,在使用框架时,您希望了解最佳实践是什么以及它将如何影响您的应用程序。

在 Lithium 中,MyModel::create()MyModel::find()返回表示数据库记录或文档的实体对象或实体对象集合。

实体属性存储在受保护的$_updated$_data数组中,并通过__get__set方法访问。

因此,当您引用 时$myModel->title,您正在获取/设置$myModel->_updated['title'].

然后,当您调用 时$myModel->save(),将其中的数据$_updated保存到数据库记录或文档中。

有关更多详细信息,请参阅https://github.com/UnionOfRAD/lithium/blob/master/data/Entity.php

于 2011-12-19T16:00:33.047 回答