2013-03-10 23 views
9

每當我在Zend Framework 2中收到一個錯誤時,我只顯示500個內部服務器錯誤,必須搜索Zend Server錯誤日誌。 我試圖把這個給我的配置/自動加載/ local.php文件,但它不工作:如何打開Zend Framework 2中的PHP錯誤報告?

return array(
    'phpSettings' => array(
     'display_startup_errors' => true, 
     'display_errors' => true, 
     ), 
); 

回答

8

沒有爲在ZF2沒有原生支持(據我所知)。你要麼必須將它們設置在php.ini本身,或將他們的index.php

<?php 
error_reporting(E_ALL); 
ini_set('display_errors', true); 

如果你真的希望能夠給他們提供儘可能的配置設置,你可以繼續你有什麼做在一個模塊的引導,從配置得到他們,並調用函數ini_set()在每個鍵值對

public function onBootstrap(EventInterface $e) { 
    $app = $e->getApplication(); 
    $sm = $app->getServiceManager(); 
    $config = $sm->get('Config'); 
    $phpSettings = isset($config['phpSettings']) ? $config['phpSettings'] : array(); 
    if(!empty($phpSettings)) { 
     foreach($phpSettings as $key => $value) { 
      ini_set($key, $value); 
     } 
    } 
} 

編輯:作爲@akond正確的評論所指出的,你可以只中ini_set行添加到local.php哪些是更好的解決方案。

+3

不需要這麼長的onBoostrap代碼。他可以將error_reporting放在配置文件本身中,因爲它是一個PHP文件。 – akond 2013-03-10 14:50:02

+0

@akond +1你是非常正確的,這是一個更好的選擇,引導程序代碼只是爲了演示如何使OP工作。 – Crisp 2013-03-10 14:54:24

+0

這有幫助,謝謝:) – 2013-03-14 05:40:08

6

要輕鬆配置您的ZF2應用程序的phpSettings,您應該考慮使用DluPhpSettings

有了這個模塊,你可以爲你的每個環境中配置的設置:太詳細信息

/* Local application configuration in /config/autoload/phpsettings.local.php */ 
<?php 
return array(
    'phpSettings' => array(
     'display_startup_errors'  => false, 
     'display_errors'    => false, 
     'max_execution_time'   => 60, 
     'date.timezone'     => 'Europe/Prague', 
     'mbstring.internal_encoding' => 'UTF-8', 
    ), 
); 

this blog post