2013-03-10 6 views
9

Zend Framework 2でエラーが発生するたびに、500のInternal Server Errorが表示され、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); 

でそれらを設定したいのいずれかそれは

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); 
     } 
    } 
} 

編集モジュールのブートストラップでは、設定からそれらを取得し、各キーと値のペアにini_set()で呼び出します。@akondが正しくコメントで指摘するように、あなただけのlocal.phpにini_set行を追加することができましたより良い解決策です。

+3

この長いonBoostrapコードは必要ありません。彼はPHPファイルなので、configファイル自体にerror_reportingを入れることができます。 – akond

+0

@akond +1あなたはかなり正しいです。それはより良い選択肢です。ブートストラップコードは、OPが何をするかを実証するためのものです。 – Crisp

+0

これは役に立ちました、ありがとう:) –

6

ZF2アプリでphpSettingsを簡単に設定するには、DluPhpSettingsの使用を検討する必要があります。あまりにも多くの情報を探しthis blog post

/* 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', 
    ), 
); 

このモジュールでは、あなたが持っているそれぞれの環境の設定を構成することができます!

関連する問題