2017-07-10 54 views
7

Sadece canlı sistemimde oluşan bir sorun yaşıyorum. Sistem zend2 ve PHP7 ile çalışır.Zend2 çerçevesinde çerçeve hatası için beklenen dizi

2017-07-10T08: 43: 50 + 02: 00 HATASI: Çerçeve X { "Kod" için Beklenen dizi: 0, "Dosya sorun benim warning.log aşağıdaki iletiyle flodded olmasıdır ":" satıcı/zendframework/zend-log/src/biçimlendirici/Base.php", "Hat": 105}

X, bu çok sayıdaki hata sonunda, 0 ile 25 arasında bir sayı olduğu bir

2017-07-10T10: { "Code" yazılamıyor:: 29: 34 + 02: 00 ERR 0, "Dosya": "satıcı/zendframework/zend-lo başka bir olsun g/src/Formatter/Base.php", 'Hat': 111}

Bunun nereden geldiğini görmek için düzgün bir yığın izlemesini görmüyorum ve benim yerel sorunu reprocude olamaz dev makine.

Herhangi bir yardım

mutluluk duyacağız.

Düzenleme: Bir collegue Bu hata mesajı PHP7 C-seviyesinden geldiğini söyledi . Uygun bir yığın izinin nasıl alınacağı konusunda bir fikri olan var mı? Ya da sorun ne olabilir?

Ben

...try{ 
    return (string) $value; 
} catch(\Throwable $e){ 
    file_put_contents('error.txt',var_export($e,true),FILE_APPEND); 
    file_put_contents('value.txt',var_export($value,true),FILE_APPEND); 
    return (string) $value; 
} 

hatayı yakalamak için çalıştı ama bu hata yakalanmış edilememiştir gibi görünüyor. Bu, meslektaşımın bilgilerinin doğru olduğunu gösteriyor.

+0

PHP belirli dir içine bir dosya yazamadı zaman bu hata var. Php için yazılabilir günlük dosyalarını içeren dizin var mı? – Marcel

+0

Evet! Projedeki hemen her dizinin mümkün olan her izni vardır (777). – MrSmith

+0

Canlı sisteminizde xdebug etkin mi? –

cevap

0

sizin try/catch için bir fikir:

Zend\Stdlib\ErrorHandler::start(E_ALL); 
$return = (string) $value; 
$exception = Zend\Stdlib\ErrorHandler::stop(); 

file_put_contents('error.txt', var_export($exception, true), FILE_APPEND); 
file_put_contents('value.txt', var_export($value, true), FILE_APPEND); 

return $return; 
+0

Yukarıdaki kodu "file_put_contents" etrafında küçük bir değişiklikle ('if ($ exception! == null)') denedim ancak şu ana kadar dosyalar mevcut değil. Benim tahminim, bu hatanın yakalanamamasıdır çünkü PHP'nin C seviyesinde "atılmış" olur. – MrSmith