gpt4 book ai didi

symfony - 实体是否总是必须基于Symfony2中的数据库?

转载 作者:行者123 更新时间:2023-12-04 03:58:56 25 4
gpt4 key购买 nike

我有一个项目,其中DB隐藏在Web服务(许多服务)的后面。简而言之-无法直接访问数据库。

我使用Symfony2,并且当涉及到更繁重的逻辑时(例如,当我有“存储数据”(例如:用户,汽车,房间)和服务(可从容器访问)/模型的对象时,我每次都强制自己使用实体。 TransactionMaker,RoomBooker,CarDestroyer等)。

选择没有数组ORM的实体而不是数组,是因为框架提供了极其简单的方法来验证,构建表单和IDE智能感知。

现在可以正常工作,但是一些开发人员声称实体必须始终在DB中反射(reflect)表。真的吗?

最佳答案

仅当实体被配置为映射到数据库表时,该实体才从该书中读取:

The class - often called an "entity", meaning a basic class that holds data - is simple and helps fulfill the business requirement of needing products in your application. http://symfony.com/doc/current/book/doctrine.html#creating-an-entity-class



与使用简单数组相比,以更正式的方式对数据建模是一种好习惯,这就是它们存在的原因。

也许它们最常用于将数据映射到数据库,但这不是必需的。它们实现了成为数据容器的目的,即以一种有意义的方式对应用程序的信息进行建模。 (即在用户实体中为用户建模)

如果您不使用数据库进行持久化,则可以随意使用它们来传递数据,创建表单,使用验证服务,安全性等。创建一个服务以允许从Symfony应用访问Web服务上的信息也是一个好主意,因此您可能会遇到以下情况:
$user = $this->get('some_persistance_service_you_write')->find($id,'user');
$user->setName('new value');
$err = $this->get('validator')->validate($user);
//....
$this->get('some_persistance_service_you_write')->persist($user);

当然,这不是主题,但这是如何使用没有数据库访问权限的实体的示例。

关于symfony - 实体是否总是必须基于Symfony2中的数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14465991/

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