symfonyで無理矢理PDOを使う

Propel大嫌いです。

せめてバッチくらい素のSQLを書きたい

PDOを使いたい



そんな時こんな感じでsymfonyでPDOのインスタンスを取得できる




class PDOUtil
{
public static function getPDO($database = 'propel')
{
static $pdo = array();
if (!isset($pdo[$database])) {

$manager = new sfDatabaseManager();
$manager->initialize();

$propel = $manager->getDatabase($database);

$phptype = $propel->getParameter('phptype');
$database = $propel->getParameter('database');
$host = $propel->getParameter('hostspec');
$username = $propel->getParameter('username');
$pass = $propel->getParameter('password');
$encoding = $propel->getParameter('encoding');


$pdo[$database] = new PDO("$phptype:host=$host;dbname=$database", $username, $pass);
if ($encoding) {
$pdo[$database]->query("SET NAMES $encoding;");
}
else {
$pdo[$database]->query("SET NAMES utf8;");
}
}
return $pdo[$database];
}

}