Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Doctrine 实体存储法的计算收益_Doctrine_Symfony - Fatal编程技术网

Doctrine 实体存储法的计算收益

Doctrine 实体存储法的计算收益,doctrine,symfony,Doctrine,Symfony,我想知道从EntityRepository方法返回计算值是否可能(或者可能不是最佳实践),或者我是否应该在其他地方进行计算。比如说 My Entity用户有时间(时间是一周中的一天,并且是一周中该天的相应时间,而不是一个硬性日期) 希望编写一个函数,返回特定于日期的下一个时间,例如,如果今天是2016年2月8日(星期一),下一个“时间”是周二12:00PM,我希望函数只返回一个反映2/9/16 12:00PM的DateTime对象,这当然是可能的。您希望避免在给定的类中有太多不相关的函数。但是,

我想知道从EntityRepository方法返回计算值是否可能(或者可能不是最佳实践),或者我是否应该在其他地方进行计算。比如说

My Entity用户有时间(时间是一周中的一天,并且是一周中该天的相应时间,而不是一个硬性日期)


希望编写一个函数,返回特定于日期的下一个时间,例如,如果今天是2016年2月8日(星期一),下一个“时间”是周二12:00PM,我希望函数只返回一个反映
2/9/16 12:00PM

的DateTime对象,这当然是可能的。您希望避免在给定的类中有太多不相关的函数。但是,如果您只有少数用户,并且他们都与用户直接相关,那么将他们偷偷带到存储库中是可以的。使您无需管理其他服务。如果用户之外的其他类需要此类功能,则创建一个独立的日期服务。@cerad我可以直接在实体类中放置这样的函数,还是最好放在EntityRepository中。赞成/反对??。。。基本上,每个实例都会有一个可计算的日期或NULL。如果用户没有定义“时间”,则不可能有“下一个”日期。或者最好只保留带有getter和setter的实体,就是这样,然后将其他自定义函数放入repositor中,或者像您建议的那样创建一个服务……如果您的函数只应用于用户,不需要访问数据库,那么您可以将其放入entity类中。这叫做业务逻辑。只需确保所有内容都与用户相关即可。如果你开始需要创建虚假的用途只是为了访问该功能,那么你应该把它移到其他地方。好的,谢谢,我认为你给我指明了正确的方向。我可以找出我需要编写的代码,有时我对在使用symfony时将代码放在哪里有疑问。有时我发现在一个地方或另一个地方获取信息更容易,但不确定在那里放置该函数是否可以接受。例如,说
$this->getTimes()
并执行工作并返回日期时间比在存储库中传递用户对象并编写DQL更容易。