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
Php Symfony和Twig:it';传递整个实体还是将单个属性传递到专用数组中更好?_Php_Symfony_Twig - Fatal编程技术网

Php Symfony和Twig:it';传递整个实体还是将单个属性传递到专用数组中更好?

Php Symfony和Twig:it';传递整个实体还是将单个属性传递到专用数组中更好?,php,symfony,twig,Php,Symfony,Twig,Symfony可以将整个实体传递给细枝模板,并且可以从细枝模板调用实体的get方法 从细枝模板内部调用get方法是一种很好的做法,也有一些缺点,例如在性能或消耗的资源方面?直接访问实体是可以的,但在某些性能或内存密集型场景中除外(内存受限环境中的巨大结果集…),在这种情况下,您可能不得不退回到传递静态数据 还请注意,您不必显式调用细枝文件中的实体的方法,因为它的行为类似于对应的关联数组细枝(细枝足够聪明,可以根据需要为实体水合并调用getter): 因此,这是同一件事:从控制器调用get方法与从

Symfony可以将整个实体传递给细枝模板,并且可以从细枝模板调用实体的get方法


从细枝模板内部调用get方法是一种很好的做法,也有一些缺点,例如在性能或消耗的资源方面?

直接访问实体是可以的,但在某些性能或内存密集型场景中除外(内存受限环境中的巨大结果集…),在这种情况下,您可能不得不退回到传递静态数据

还请注意,您不必显式调用细枝文件中的实体的方法,因为它的行为类似于对应的关联数组细枝(细枝足够聪明,可以根据需要为实体水合并调用getter):


因此,这是同一件事:从控制器调用get方法与从twig模板调用它是同一件事?twig技巧允许您不从控制器访问实体,因此您要编写的代码更少(如果您在某个时候需要,相同的twig模板也与实体的数组等价物完全兼容)。这是不完全相同的,因为如果在属性getter中发生错误,那么生成的堆栈跟踪将不同,因为在执行该细枝模板的php表示时,getter的执行要晚得多。此外,作为推论,访问实体上的属性通常会触发orm的水合作用(实际使用db数据填充),这可能会占用大量内存,并导致php内存不足错误,当您从一根细枝上看到它发生时,这总是一件痛苦的事情。
Display some entity property through its getter method : {{ entity.property }}
Display some array index value : {{ array.index }}