本文整理汇总了PHP中Propel::initConnection方法的典型用法代码示例。如果您正苦于以下问题:PHP Propel::initConnection方法的具体用法?PHP Propel::initConnection怎么用?PHP Propel::initConnection使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Propel
的用法示例。
在下文中一共展示了Propel::initConnection方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getPdoConnection
public function getPdoConnection($datasource)
{
if (!isset($this->pdoConnections[$datasource])) {
$buildConnection = $this->getConnection($datasource);
$buildConnection['dsn'] = str_replace("@DB@", $datasource, $buildConnection['dsn']);
$this->pdoConnections[$datasource] = Propel::initConnection($buildConnection, $datasource);
}
return $this->pdoConnections[$datasource];
}
示例2: instanciate
/**
* @static
* @param string $connectionName
* @return PropelPDO
*/
public static function instanciate($connectionName)
{
$propelConfiguration = Propel::getConfiguration();
if (isset($propelConfiguration['datasources'][$connectionName]['connection'])) {
$parameters = $propelConfiguration['datasources'][$connectionName]['connection'];
} else {
if (isset($propelConfiguration['datasources'][Propel::getDefaultDB()])) {
$propelConfiguration['datasources'][$connectionName] = $propelConfiguration['datasources'][Propel::getDefaultDB()];
Propel::setConfiguration(new PropelConfiguration($propelConfiguration));
$parameters = $propelConfiguration['datasources'][$connectionName]['connection'];
} else {
throw new Exception(sprintf("Unable to find connection parameters for connection '%s'", $connectionName));
}
}
return Propel::initConnection($parameters, $connectionName);
}
示例3: getSlaveConnection
/**
* Gets an already-opened read PDO connection or opens a new one for passed-in db name.
*
* @param string $name The datasource name that is used to look up the DSN
* from the runtime configuation file. Empty name not allowed.
*
* @return PDO A database connection
*
* @throws PropelException - if connection cannot be configured or initialized.
*/
public static function getSlaveConnection($name)
{
if (!isset(self::$connectionMap[$name]['slave'])) {
$slaveconfigs = isset(self::$configuration['datasources'][$name]['slaves']) ? self::$configuration['datasources'][$name]['slaves'] : null;
if (empty($slaveconfigs)) {
// no slaves configured for this datasource
// fallback to the master connection
self::$connectionMap[$name]['slave'] = self::getMasterConnection($name);
} else {
// Initialize a new slave
if (isset($slaveconfigs['connection']['dsn'])) {
// only one slave connection configured
$conparams = $slaveconfigs['connection'];
} else {
// more than one sleve connection configured
// pickup a random one
$randkey = array_rand($slaveconfigs['connection']);
$conparams = $slaveconfigs['connection'][$randkey];
if (empty($conparams)) {
throw new PropelException('No connection information in your runtime configuration file for SLAVE [' . $randkey . '] to datasource [' . $name . ']');
}
}
// initialize slave connection
$con = Propel::initConnection($conparams, $name);
self::$connectionMap[$name]['slave'] = $con;
}
}
// if datasource slave not set
return self::$connectionMap[$name]['slave'];
}
示例4: getConnection
/**
* Gets an already-opened PDO connection or opens a new one for passed-in db name.
*
* @param string $name The datasource name that is used to look up the DSN from the runtime configuation file.
* @param string $mode The connection mode (this applies to replication systems).
*
* @return PDO A database connection
*
* @throws PropelException - if connection cannot be configured or initialized.
*/
public static function getConnection($name = null, $mode = Propel::CONNECTION_WRITE)
{
if ($name === null) {
$name = self::getDefaultDB();
}
// IF a WRITE-mode connection was requested
// or Propel is configured to always use the master connection
// or the slave for this connection has already been set to FALSE (indicating no slave)
// THEN return the master connection.
if ($mode != Propel::CONNECTION_READ || self::$forceMasterConnection || isset(self::$connectionMap[$name]['slave']) && self::$connectionMap[$name]['slave'] === false) {
if (!isset(self::$connectionMap[$name]['master'])) {
// load connection parameter for master connection
$conparams = isset(self::$configuration['datasources'][$name]['connection']) ? self::$configuration['datasources'][$name]['connection'] : null;
if (empty($conparams)) {
throw new PropelException('No connection information in your runtime configuration file for datasource [' . $name . ']');
}
// initialize master connection
$con = Propel::initConnection($conparams, $name);
self::$connectionMap[$name]['master'] = $con;
}
return self::$connectionMap[$name]['master'];
} else {
if (!isset(self::$connectionMap[$name]['slave'])) {
// we've already ensured that the configuration exists, in previous if-statement
$slaveconfigs = isset(self::$configuration['datasources'][$name]['slaves']) ? self::$configuration['datasources'][$name]['slaves'] : null;
if (empty($slaveconfigs)) {
// no slaves configured for this datasource
self::$connectionMap[$name]['slave'] = false;
return self::getConnection($name, Propel::CONNECTION_WRITE);
// Recurse to get the WRITE connection
} else {
// Initialize a new slave
if (isset($slaveconfigs['connection']['dsn'])) {
// only one slave connection configured
$conparams = $slaveconfigs['connection'];
} else {
$randkey = array_rand($slaveconfigs['connection']);
$conparams = $slaveconfigs['connection'][$randkey];
if (empty($conparams)) {
throw new PropelException('No connection information in your runtime configuration file for SLAVE [' . $randkey . '] to datasource [' . $name . ']');
}
}
// initialize master connection
$con = Propel::initConnection($conparams, $name);
self::$connectionMap[$name]['slave'] = $con;
}
}
// if datasource slave not set
return self::$connectionMap[$name]['slave'];
}
// if mode == CONNECTION_WRITE
}
示例5: getAvailableSlaveConnection
protected static function getAvailableSlaveConnection($name, $configs)
{
if (isset($configs['connection']['dsn'])) { // only one slave connection configured
$servers = array(
'single' => $configs['connection']
);
} else {
$servers = $configs['connection'];
}
$keys = array_keys($servers);
shuffle($keys);
// Weed out blatantly broken configurations or blacklisted servers
foreach ($keys as $i => $key) {
$conparams = $servers[$key];
$dsn = $conparams['dsn'];
if (empty($conparams)) {
throw new PropelException('No connection information in your runtime configuration file for SLAVE ['.$randkiey.'] to datasource ['.$dsn.']');
}
if (self::isServerBlacklisted($dsn)) {
unset($servers[$key], $keys[$i]);
}
}
$_SERVER['failed-slaves'] = array();
foreach ($keys as $key) {
$conparams = $servers[$key];
$dsn = $conparams['dsn'];
try {
return Propel::initConnection($conparams, $name);
} catch (PropelException $e) {
$_SERVER['failed-slaves'][] = $dsn;
self::blacklistServer($dsn);
}
}
throw new PropelException('No valid connection information in your runtime configuration file for slaves on datasource [' . $name . '].');
}