2016-07-20 2 views
0

私はDoctrineなどを使いたくないので、単にPDOを使用します。問題は、例外を処理する方法がわからないことです:$app->abortを呼び出すと、ルート外では機能しないことが示されます。

<?php 

require_once __DIR__.'/../vendor/autoload.php'; 
use Symfony\Component\HttpFoundation\Response; 
use Symfony\Component\HttpFoundation\Request; 

$app = new Silex\Application(); 

//PDO 
try { 
    $DBH = new PDO($PartCCTV_ini['db']['dsn'], $PartCCTV_ini['db']['user'], $PartCCTV_ini['db']['password']); 
} 
catch(PDOException $e) { 
    $app->abort(500, 'PDO Error : '.$e->getMessage());    
} 

... 

$app->run() 

?> 
+0

どのような結果が期待されますか?ところで、なぜあなたはそのためにサービスを作成するのではなく、アプリケーションの外でこれをやっていますか? –

+0

@dragoste、終了コード500のエラーページ、説明。サービスを書くには時間がかかりすぎると思います。 – Vasiliy

+0

'header( 'HTTP/1.1 500 Internal Server Error');のような適切なヘッダを返すだけで、500ページのHTMLコンテンツを投稿することもできます。しかし、あなたがそれを始める前にそれを行うので、ここでSilexアプリケーションを使用することはできません。 –

答えて

1
//PDO 
try { 
    $DBH = new PDO($PartCCTV_ini['db']['dsn'], $PartCCTV_ini['db']['user'], $PartCCTV_ini['db']['password']); 
} 
catch(PDOException $e) { 
    $Exception = $e->getMessage();  
    $app->before(function() use($Exception) { 
     throw new PDOException($Exception); 
    }); 
} 

"コルホーズスタイル"ロシア)が、それは動作します!

関連する問題