2014-12-19 74 views
1

我使用的是symfony 2.5.8,當通過命令{{dump(whatever)}}將vars放入樹枝時,我的電腦死機,並在一段時間後,我得到一個錯誤頁面,並從控制檯下面的錯誤,我開始內置的服務器(與-v選項):Symfony2和Twig:{{dump()}}導致內置的服務器崩潰

Killed 
Built-in server terminated unexpectedly 

有誰有過同樣的問題?有誰知道可能是什麼原因?

我已經添加了以下的配置app/config/config_dev.yml

services: 
    custom.twig.extension.debug: 
     class: Twig_Extension_Debug 
     tags: 
      - { name: 'twig.extension' } 

提前感謝!

+0

內置的服務器不是很強大 - 它只是爲簡單的本地開發而設計的。我希望在拋棄小事情(簡單變量)的情況下可以做到這一點,但是你有可能把重要的東西放進去,而且內存不足。 – 2014-12-19 10:12:42

+0

與apache(內部服務器錯誤)相同的東西。 可能我想轉儲的東西很大,但是這會導致服務器崩潰,這感覺很奇怪。 – Alberto 2014-12-19 10:25:23

+0

沒有var可以傾倒?如果您嘗試轉儲實體,則可能會超出內存限制。但嘗試轉儲一些字符串或整數變種。 – 2014-12-19 10:46:53

回答

1

如果內存不足並且已安裝xdebug模塊,則可以在php.ini文件中設置選項xdebug.max_nesting_level = 100

這將截斷轉儲的輸出,將幫助您調試像關係

+0

安裝了php5-xdebug並在php.ini中添加了建議的表達式。現在它打印了一些東西! – Alberto 2014-12-19 11:06:31

2

主義實體高度嵌套的對象。如果你想轉儲變量是指Doctrine2實體,它是一種常見的行爲。

根據枝條的文件,轉儲使用本地的var_dump功能:

內部,嫩枝使用PHP的var_dump功能。

http://twig.sensiolabs.org/doc/functions/dump.html

在另一方面,Doctrine2文檔說你不能只的var_dump實體:

延遲加載代理總是包含學說的EntityManager的和所有依賴的一個實例。因此var_dump()可能會轉儲一個非常大的遞歸結構,這是不可能呈現和讀取的。您必須使用Doctrine \ Common \ Util \ Debug :: dump()將轉儲限制爲可讀取的級別。此外,您應該知道將EntityManager轉儲到瀏覽器可能需要幾分鐘的時間,並且Debug :: dump()方法在代理實例中忽略了它的任何出現。

http://doctrine-orm.readthedocs.org/en/latest/tutorials/getting-started.html?highlight=var_dump

正如你可以寫一個使用Doctrine2的Doctrine\Common\Util\Debug::dump()方法傾出實體一根樹枝擴展的解決方案。

1

由於Symfony 2.6,你可以使用VarDumper組件的dump()任何對象。

您應該覆蓋的樹枝通過使用擴展名(由你代替命名空間)的{{ dump() }}

FUZ /的appbundle /嫩枝/分機/ DebugExtension.php

<?php 

namespace Fuz\AppBundle\Twig\Extension; 

class DebugExtension extends \Twig_Extension 
{ 

    public function getFunctions() 
    { 
     return array (
       new \Twig_SimpleFunction('dump', array('Symfony\Component\VarDumper\VarDumper', 'dump')), 
     ); 
    } 

    public function getName() 
    { 
     return 'FuzAppBundle:Debug'; 
    } 

} 

FUZ /的appbundle /資源/配置/服務。陽明海運

app.twig.debug_extension: 
    class: %app.twig.debug_extension.class% 
    arguments: [] 
    tags: 
     - { name: twig.extension } 

enter image description here