gpt4 book ai didi

php - 模型属性是动态的

转载 作者:行者123 更新时间:2023-12-04 06:04:16 24 4
gpt4 key购买 nike

我来自 .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。
我可以声明一个任意对象并随时添加属性。
现在,我并不是说这是一件坏事,我只是想知道:
  • 如果这对于 PHP 是正常的或对于锂是正常的,并且
  • 如果我添加属性(这样我就可以在 eclipse 中完成代码),它会损害 Lithium 的 ORM 特性吗?
  • 最佳答案

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

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

    实体属性存储在 protected $_updated 中和 $_data数组并通过 __get 访问和 __set方法。

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

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

    https://github.com/UnionOfRAD/lithium/blob/master/data/Entity.php更多细节。

    关于php - 模型属性是动态的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8558012/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com