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