protected static function _setupPdo() { // Check the DSN string if (!isset(static::$_dsn)) { $error = "No DSN specified in " . get_called_class(); $error .= ": please specify a 'protected static \$_dsn = ...;'"; throw new Exception($error); } $user = null; $password = null; $options = array(); // If it is MySQL, extract user and password from the DSN $dsn = explode(":", static::$_dsn); if ('mysql' == $dsn[0]) { $parts = explode(";", $dsn[1]); foreach ($parts as $i => $part) { $kv = explode('=', $part); $parts[$kv[0]] = $kv[1]; unset($parts[$i]); } $user = @ZFE_Core::value($parts['user']); $password = @ZFE_Core::value($parts['password']); unset($parts['user']); unset($parts['password']); $_parts = array(); foreach ($parts as $k => $v) { $_parts[] = "{$k}={$v}"; } $dsn[1] = implode(";", $_parts); // Update default fetch mode (maybe put this in the global // function scope) $options[PDO::ATTR_DEFAULT_FETCH_MODE] = PDO::FETCH_ASSOC; } $dsn = implode(":", $dsn); static::$_pdo = new PDO($dsn, $user, $password, $options); }
private function doAssert($val) { $this->assertEquals($val, ZFE_Core::value($val)); }