仲間のスタックオーバーフラワー!
私は奇妙な問題に苦しんでいます。簡単な説明を書きましょう。
ここに私のフォルダ階層があります
- 名前空間 sys\core とクラス名 core が宣言された \sys\core\core.php
- \sys\traits\singleton.php で宣言された名前空間 sys\traits と特性名 singleton
- \pub\index.php (宣言された名前空間はありません。残りを処理する自動ロード機能が含まれています - 名前空間の宣言に基づいてファイルをロードします)
\sys\traits\singleton.php
trait singleton {
private static $_instance = false;
public static function get_instance() {
if( self::$_instance == false ) {
self::$_instance = new self();
}
return self::$_instance;
}
}
\sys\core\core.php
namespace sys\core;
class core {
use \sys\traits\singleton;
public function __construct() {
$ =; // just an example, it shall produce a nice parse error but it wont :(
}
}
そして、私が持っている\pub\index.phpで
error_reporting(E_ALL);
// some constants defined
require('path/to/my/autoload/which/works/correctly.php');
use sys\core\core as core;
$core = core::get_instance();
$core->load_controller();
基本的にparse error / warning etc
、名前空間内で発生しない限り、あらゆる種類のエラー ( ) が表示されます。そのため、問題は\pub\index.php
(必要に応じて) 正しく報告されますが、宣言された名前空間を持つファイルで発生したすべてのエラーは、エラーが表示されずに白いページが表示されます (error_reporting がE_ALL
可能な限りどこにでも設定されているにもかかわらず、php.ini でさえも)
私の設定情報:
PHP 5.5.0 (dotdeb.org のパッケージ) PHP-FPM nginx 1.4.1 (dotdeb.org のパッケージ、また、nginx の error.log は空で、通常はあらゆる種類の PHP エラーを保存します) Debian で実行 (テスト/シド)
ヒント/ヒント何が欠けていますか? どんな情報でもありがたいです!前もって感謝します!