2

我正在使用轻量级 PHP MVC(自制——不是我自己开发的——而是基于 Codeigniter)来开发 Web 应用程序。目前,我只有一个对象——用户。

Web 应用程序允许每个用户管理一个集合(假设用户有一个不同动物的集合)并动态操作该集合。站点中的一个页面将定义一组动物的行为,另一个将指定外观。但是,如果用户在定义行为时删除了动物,那么一旦用户移动到外观选项卡,就应该从集合中删除该动物。

可以(应该)每只动物都是一个对象吗?我知道在 Java 中我可以将一组对象传递给我的应用程序中的另一个对象,但不确定这在 PHP 中是否可行/常见(这将是理想的实现)。

或者,如果我要将所有动物存储在某种数据结构中,我是否可以在视图之间传递该数据结构(从客户端通过 AJAX?)

我不想将此信息存储在数据库中,因为这样,在每次页面加载之间,我必须重新查询数据库以查看是否进行了任何更改。

4

1 回答 1

0

这确实是可能的,但只能使用某种持久存储。PHP 仅存在于请求期间。一旦用户看到完成的“产品”,就不再运行 PHP 脚本,因此所有未存储在 HTML 或其他地方的信息都会丢失。话虽如此,您需要某种存储空间。

是的,每次发生变化时都会进行数据库查询,这可能会影响性能。但是你可以做一件简单易行的事情。*) 在用户可以定义行为的一个视图中,您在提交后将用户引导回他来自的同一控制器。然后,此控制器从 HTML 中读取所有相关数据(内容和方式取决于数据的表示方式)。此读取数据将用于更新现有集合。然后用户被重定向到外观控制器和它的视图。

*) 整个数据结构被序列化并保存在一个文件中。这很容易阅读,也很容易写。如果您决定使用数据库,则可以将此文件用作缓存。每当发生更改时,都会删除缓存并更新数据库。下次控制器需要数据但找不到缓存时,将从数据库中重新创建缓存。除非您更改每一页上的数据,否则这将极大地提升性能。

于 2013-07-26T11:47:59.390 回答