我来自.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 我可以声明一个任意对象并添加属性。 现在,我不是说这是件坏事,我只是想知道:
答案 0 :(得分: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。