【发布时间】:2014-07-05 14:46:01
【问题描述】:
我正在从事一个大型网站项目。目前该网站已设置,以便对数据库进行 SQL 查询以操作它们(例如,如果您想将用户添加到 user 表中,您将进行 INSERT 查询)。
我正在考虑将结构更改为更面向对象的设计。因此,可能存在用户类或产品类。然而,在这种结构中,数据仍将存储在数据库中,因此拥有例如 User 类(保存每个用户的个人信息)几乎没有意义。像这样的面向对象设计与基于 PHP-MySQL 的大型网站有什么好处?
如您所见,我是构建大型网站的新手。基于 PHP-MySQL 的网站的行业标准是什么?常见的做法是什么?
【问题讨论】:
-
您应该考虑使用 PHP 框架,例如 Laravel、CodeIgniter 等来为您处理这些事情。接下来,拥有反映数据库的类的好处是便于管理,并且使用类,您可以在代码中传递该对象,并且您将知道该对象包含数据库中的值。
-
感谢@kennypu 的回复!那么用户对象是否会在每次被要求提供信息时只查询数据库(例如
$u->GetName();)? -
不,那样效率很低。它的工作方式是说你使用
$u = new User($uid)之类的东西创建一个新的用户对象,构造函数将查询数据库并获取所有用户信息,所以稍后在你的代码中你可以只做$u->name,它已经有了名字,它就不会不断地查询数据库了。 -
哦,我明白了。但是为了保存对字段的修改,您必须执行
$u->Save();之类的操作,对吗?
标签: php mysql database oop object-oriented-database