本文整理汇总了PHP中ConnectionManager::getDataSource方法的典型用法代码示例。如果您正苦于以下问题:PHP ConnectionManager::getDataSource方法的具体用法?PHP ConnectionManager::getDataSource怎么用?PHP ConnectionManager::getDataSource使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ConnectionManager
的用法示例。
在下文中一共展示了ConnectionManager::getDataSource方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: registrations
public function registrations($all = false)
{
$db = ConnectionManager::getDataSource('default');
$data = $this->CventAPI->GetRegistrationIds('994C2F8D-98D9-4ADA-98B9-1A1A4F29FAB1');
$chunks = array_chunk($data, 100);
$added = 0;
foreach ($chunks as $chunk) {
$registrations = $this->CventAPI->RetrieveRegistrations($chunk);
foreach ($registrations as $registration) {
$exists = $db->query("select * from cvent where uuid = '{$registration->Id}'");
if (empty($exists)) {
$db->query("INSERT INTO `cvent` (`uuid`, `object`, `parent_object`, `parent_uuid`, `presenter_sequence_id`, `confirmation`, `notes`) VALUES ('{$registration->Id}', 'Registration', 'Event' ,'{$this->eventId}', '{$registration->SourceId}', '{$registration->ConfirmationNumber}', '{$registration->ResponseMethod}');");
if (isset($registration->PaymentDetail) && $registration->PaymentDetail instanceof stdClass) {
$PaymentDetail = $registration->PaymentDetail;
$db->query("INSERT INTO `cvent` (`uuid`, `object`, `parent_object`, `parent_uuid`, `presenter_sequence_id`, `confirmation`, `notes`) VALUES ('{$PaymentDetail->TransactionId}', 'Payment', 'Registration' ,'{$registration->Id}', '{$registration->SourceId}', '{$PaymentDetail->ReferenceNumber}', '{$PaymentDetail->Amount}');");
}
$added++;
$this->out("Added PresenterSequenceId: <info>{$registration->SourceId}</info>");
}
if (isset($registration->OrderDetail) && $registration->OrderDetail instanceof stdClass) {
$this->addOrderDetails($registration);
} elseif (count($registration->OrderDetail) > 1) {
foreach ($registration->OrderDetail as $key => $value) {
$this->addOrderDetails($registration, $key);
}
}
}
}
$this->out("Added: <info>{$added}</info> new registrations.");
}
示例2: delete
/**
* Override Model::delete, because it would block deleting when
* useTable = false and no records exists
*
* @param <type> $id
* @param <type> $cascade
* @return <type>
*/
function delete($id = null, $cascade = true)
{
if (!empty($id)) {
$this->id = $id;
}
$id = $this->id;
if ($this->beforeDelete($cascade)) {
$db =& ConnectionManager::getDataSource($this->useDbConfig);
if (!$this->Behaviors->trigger($this, 'beforeDelete', array($cascade), array('break' => true, 'breakOn' => false))) {
return false;
}
$this->_deleteDependent($id, $cascade);
$this->_deleteLinks($id);
$this->id = $id;
if (!empty($this->belongsTo)) {
$keys = $this->find('first', array('fields' => $this->__collectForeignKeys()));
}
if ($db->delete($this)) {
if (!empty($this->belongsTo)) {
$this->updateCounterCache($keys[$this->alias]);
}
$this->Behaviors->trigger($this, 'afterDelete');
$this->afterDelete();
$this->_clearCache();
$this->id = false;
$this->__exists = null;
return true;
}
}
return false;
}
示例3: main
public function main()
{
$db = ConnectionManager::getDataSource('default');
$db->query($this->migrationsTableSql);
$results = $db->query("select migrations from __migrations");
$applied = array();
foreach ($results as $result) {
$applied[] = $result['__migrations']['migrations'];
}
$migrations = glob(APP . 'Config' . DS . 'Schema' . DS . 'migrations' . DS . '*.sql');
natsort($migrations);
$db->begin();
try {
foreach ($migrations as $filename) {
list($migration, $ignore) = explode('.', basename($filename));
if (in_array($migration, $applied)) {
continue;
}
$this->out("Migrating to {$migration}.");
$db->query(file_get_contents($filename));
$db->query("INSERT INTO `__migrations` VALUES ('{$migration}')");
}
$db->commit();
$this->out('Done.');
} catch (Exception $e) {
$this->out("<error>Migration failed. Rolling back.</error>");
$db->rollback();
throw $e;
}
}
示例4: status
/**
* Displays information about the system configuration.
*/
public function status()
{
$this->set('core', array('debug' => Configure::read('debug'), 'database' => @ConnectionManager::getDataSource('default')));
$uploads_path = Configure::read('uploads.path');
$this->set('uploads', array('url' => Configure::read('uploads.url'), 'path' => $uploads_path, 'exists' => is_dir($uploads_path), 'writable' => is_writable($uploads_path), 'executable' => is_executable($uploads_path)));
$this->set('dependencies', array('Ghostscript' => is_executable('ghostscript'), 'Imagemagick' => class_exists('Imagick')));
}
示例5: _importTables
function _importTables($from)
{
$defaultDb = ConnectionManager::getDataSource($from);
foreach ($defaultDb->listSources() as $table) {
$this->fixtures[] = "app." . Inflector::singularize($table);
}
}
示例6: run
/**
* Run
*
* @return void
*/
public function run()
{
$null = null;
$this->db = ConnectionManager::getDataSource($this->connection);
$this->db->cacheSources = false;
$this->db->begin($null);
if (!isset($this->args[0]) || !in_array($this->args[0], array('insert', 'remove'))) {
$this->out(__d('SoftDelete', 'Invalid option'));
return $this->_displayHelp(null);
}
if (!isset($this->args[1])) {
$this->out(__d('SoftDelete', 'You missed field name.'));
return $this->_displayHelp(null);
}
try {
$this->_run($this->args[0], $this->args[1]);
$this->_clearCache();
} catch (Exception $e) {
$this->db->rollback($null);
throw $e;
}
$this->out(__d('SoftDelete', 'All tables are updated.'));
$this->out('');
return $this->db->commit($null);
}
示例7: Migrations
/**
* Constructor - checks dependencies and loads the connection
*
* @param string $sConnecion The connection from database.php to use. Deafaults to "default"
* @return void
*/
function Migrations($sConnection = 'default')
{
if (class_exists('Spyc')) {
$this->bSpycReady = true;
}
$this->oDb =& ConnectionManager::getDataSource($sConnection);
}
示例8: setUp
/**
* setup method
*
* @access public
* @return void
*/
public function setUp()
{
$this->Dbo = ConnectionManager::getDataSource('test');
if (!$this->Dbo instanceof Oracle) {
$this->markTestSkipped('The Oracle extension is not available.');
}
}
示例9: importKeywords
public function importKeywords()
{
$db = ConnectionManager::getDataSource('default');
$mysqli = new mysqli($db->config['host'], $db->config['login'], $db->config['password'], $db->config['database']);
$sql = array('links', 'links_keywords');
foreach (glob('/home/kiang/public_html/news/cache/output/*.json') as $jsonFile) {
$json = json_decode(file_get_contents($jsonFile), true);
$newLinkId = String::uuid();
$json['title'] = $mysqli->real_escape_string(trim($json['title']));
$json['url'] = $mysqli->real_escape_string($json['url']);
$json['created'] = date('Y-m-d H:i:s', $json['created_at']);
$sql['links'][] = "('{$newLinkId}', '{$json['title']}', '{$json['url']}', '{$json['created']}')";
foreach ($json['keywords'] as $keywordId => $summary) {
$lkId = String::uuid();
$summary = $mysqli->real_escape_string(trim($summary));
$sql['links_keywords'][] = "('{$lkId}', '{$newLinkId}', '{$keywordId}', '{$summary}')";
}
unlink($jsonFile);
}
if (!empty($sql['links'])) {
$linksSql = 'INSERT INTO links VALUES ' . implode(',', $sql['links']) . ";\n";
$lkSql = 'INSERT INTO links_keywords VALUES ' . implode(',', $sql['links_keywords']) . ';';
file_put_contents(TMP . 'keywords.sql', $linksSql . $lkSql);
}
}
示例10: onActivate
/**
* Called after activating the hook in ExtensionsHooksController::admin_toggle()
*
* @param object $controller Controller
* @return void
*/
function onActivate(&$controller)
{
// ACL: set ACOs with permissions
$controller->Croogo->addAco('NodeSchema');
// the controller
$controller->Croogo->addAco('NodeSchema/admin_index');
// admin methods
$controller->Croogo->addAco('NodeSchema/admin_add');
$controller->Croogo->addAco('NodeSchema/admin_edit');
$controller->Croogo->addAco('NodeSchema/admin_delete');
$controller->Croogo->addAco('NodeSchema/admin_add_schema_field');
$controller->Croogo->addAco('NodeSchema/admin_import');
$controller->Croogo->addAco('NodeSchema/admin_export');
// Install the database tables we need
App::Import('CakeSchema');
$CakeSchema = new CakeSchema();
$db =& ConnectionManager::getDataSource('default');
// TODO: How do we change this for installs?
// A list of schema files to import for this plugin to work
$schema_files = array('node_schema_fields.php', 'node_schemas.php', 'node_schemas_types.php');
foreach ($schema_files as $schema_file) {
$class_name = Inflector::camelize(substr($schema_file, 0, -4)) . 'Schema';
$table_name = substr($schema_file, 0, -4);
// Only build the tables if they don't already exist
if (!in_array($table_name, $db->_sources)) {
include_once APP . 'plugins' . DS . 'node_schema' . DS . 'config' . DS . 'schema' . DS . $schema_file;
// Can app import also work here?
$ActivateSchema = new $class_name();
$created = false;
if (isset($ActivateSchema->tables[$table_name])) {
$db->execute($db->createSchema($ActivateSchema, $table_name));
}
}
}
}
示例11: main
/**
* Execute installer!
*
* @return void
*/
public function main()
{
$this->out();
$this->out('Plugin: Forum v' . Configure::read('Forum.version'));
$this->out('Copyright: Miles Johnson, 2010-' . date('Y'));
$this->out('Help: http://milesj.me/code/cakephp/forum');
$this->out();
$this->out('This shell installs the forum plugin by creating the required database tables,');
$this->out('setting up the admin user, applying necessary table prefixes, and more.');
$this->hr(1);
$this->out('Installation Steps:');
// Begin installation
$this->db = ConnectionManager::getDataSource(FORUM_DATABASE);
$this->steps(1);
if ($this->usersTable()) {
$this->steps(2);
if ($this->checkStatus()) {
$this->steps(3);
if ($this->setupAcl()) {
$this->steps(4);
if ($this->createTables()) {
$this->steps(5);
if ($this->setupAdmin()) {
$this->steps(6);
$this->finalize();
}
}
}
}
}
}
示例12: version
/**
* Get or set version info (DB)
*
* @param string $extension
* @param string $newVersion
*/
public static function version($extension = 'core', $newVersion = null)
{
if (SlConfigure::read('Sl.installPending')) {
return SlConfigure::read('Sl.version');
}
if (!SlConfigure::read('Mirror.version')) {
App::import('Core', 'ConnectionManager');
$db = @ConnectionManager::getDataSource('default');
if (!$db->isConnected() || !in_array("{$db->config['prefix']}core_versions", $db->listSources())) {
if (strpos(Sl::url(false), '/install') === false) {
Router::connect(Sl::url(false), array('controller' => 'install'));
}
return;
}
App::import('Core', 'ClassRegistry');
ClassRegistry::init('Version')->refreshMirror();
}
if ($newVersion) {
$versionModel = ClassRegistry::init('Version');
$id = $versionModel->field('Version.id', array('Version.name' => $extension));
$versionModel->create();
return $versionModel->save(array('id' => $id, 'name' => $extension, 'version' => $newVersion));
}
return SlConfigure::read("Mirror.version.{$extension}");
}
示例13: _autenticado
function _autenticado($data)
{
if (!empty($data)) {
// Primero buscamos en CENCOS.
$db =& ConnectionManager::getDataSource($this->Usuario->useDbConfig);
$usuario = $this->Usuario->find('first', array('fields' => array('Usuario.Usu_cedula', 'Usuario.Usu_nombre'), 'conditions' => array('Usu_login' => $data['SmuqUsuario']['login'], 'Usu_password' => $db->expression("old_password('" . $data['SmuqUsuario']['clave'] . "')"))));
if (!empty($usuario)) {
$this->Session->write('Usuario.cedula', $usuario['Usuario']['Usu_cedula']);
$this->Session->write('Usuario.nombre', mb_convert_case($usuario['Usuario']['Usu_nombre'], MB_CASE_TITLE, "UTF-8"));
$this->Session->write('Usuario.id_grupo', 3);
return true;
} else {
$usuario = $this->SmuqUsuario->find('first', array('fields' => array('SmuqUsuario.cedula', 'SmuqUsuario.nombre', 'SmuqUsuario.id_grupo'), 'conditions' => array('SmuqUsuario.activo' => 1, 'SmuqUsuario.login' => strtolower($data['SmuqUsuario']['login']), 'SmuqUsuario.clave' => Security::hash($data['SmuqUsuario']['clave'], null, true))));
if (!empty($usuario)) {
$this->Session->write('Usuario.cedula', $usuario['SmuqUsuario']['cedula']);
$this->Session->write('Usuario.nombre', $usuario['SmuqUsuario']['nombre']);
$this->Session->write('Usuario.id_grupo', $usuario['SmuqUsuario']['id_grupo']);
return true;
} else {
$this->Session->delete('Usuario.cedula');
$this->Session->delete('Usuario.nombre');
$this->Session->delete('Usuario.id_grupo');
}
}
}
return false;
}
示例14: resetDepths
/**
* resetDepths method
*
* Adding single table update. Typically ~20 times faster than using a loop
*
* @param mixed $id
* @return void
* @access public
*/
function resetDepths(&$Model, $id = null)
{
if (!$id) {
$table = $Model->table;
$Model->query("UPDATE {$table} SET depth = (\n\t\t\t\tSELECT wrapper.parents FROM (\n\t\t\t\t\tSELECT\n\t\t\t\t\t\tthis.id as row,\n\t\t\t\t\t\tCOUNT(parent.id) as parents\n\t\t\t\t\tFROM\n\t\t\t\t\t\t{$table} AS this\n\t\t\t\t\tLEFT JOIN {$table} AS parent ON (\n\t\t\t\t\t\tparent.lft < this.lft AND\n\t\t\t\t\t\tparent.rght > this.rght)\n\t\t\t\t\tGROUP BY\n\t\t\t\t\t\tthis.id\n\t\t\t\t) AS wrapper WHERE wrapper.row = {$table}.id)");
$db =& ConnectionManager::getDataSource($Model->useDbConfig);
if (!$db->error) {
return true;
}
$max = ini_get('max_execution_time');
if ($max) {
set_time_limit(max($Model->find('count') / 10), 30);
}
$Model->updateAll(array('depth' => 0));
$Model->displayField = 'id';
$nodes = $Model->find('list', compact('conditions'));
foreach ($nodes as $id => $_) {
$Model->resetDepths($id);
}
return true;
}
$Model->id = $id;
$path = $Model->getPath($id, array('id'));
$Model->saveField('depth', count($path));
return true;
}
示例15: run
public function run($data)
{
if (array_key_exists('search', $data) && !empty($data['search'])) {
$search = $data['search'];
$this->Twitter = ConnectionManager::getDataSource('twitter');
switch ($search) {
default:
$this->getSearchResults($search);
$nextUpdate = '+30 Minutes';
break;
case '*global*':
$this->getGlobal($search);
$nextUpdate = '+5 Minutes';
break;
}
//check if there is already a task for this term.
$findConf = array('conditions' => array('fetched' => null, 'data LIKE' => '%' . $search . '%'));
$alreadyPresent = $this->QueuedTask->find('count', $findConf);
if ($alreadyPresent == false) {
if ($this->QueuedTask->createJob('twitterscrape', array('search' => $search), $nextUpdate)) {
$this->out('Searchterm update Queued');
} else {
$this->err('Could not create Twitterscrape Job.');
}
} else {
$this->err('There seems to be another job queued for this term, job not requeued.');
}
return true;
} else {
$this->out('No Search term found, Cancelling');
// return true so the task does NOT get requeued.
return true;
}
}