public static function GetSourcesById($ids)
{
$logger = \Swiftriver\Core\Setup::GetLogger();
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetSourcesById [Method Invoked]", \PEAR_LOG_DEBUG);
$sources = array();
if (!\is_array($ids) || \count($ids) < 1) {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetSourcesById [No ids supplied]", \PEAR_LOG_DEBUG);
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetSourcesById [Method Finished]", \PEAR_LOG_DEBUG);
return $sources;
}
$getSourceSql = "CALL SC_GetSource( :id )";
try {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetSourcesById [START: Looping through ids]", \PEAR_LOG_DEBUG);
foreach ($ids as $id) {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetSourcesById [START: Connecting to the db via PDO]", \PEAR_LOG_DEBUG);
$db = self::PDOConnection();
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetSourcesById [END: Connecting to the db via PDO]", \PEAR_LOG_DEBUG);
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetSourcesById [START: Preparing PDO statement]", \PEAR_LOG_DEBUG);
$getSourceStatement = $db->prepare($getSourceSql);
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetSourcesById [END: Preparing PDO statement]", \PEAR_LOG_DEBUG);
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetSourcesById [START: Executing PDO statement]", \PEAR_LOG_DEBUG);
$result = $getSourceStatement->execute(array("id" => $id));
if ($result === false) {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetSourcesById [An Exception was thrown by the PDO framwork]", \PEAR_LOG_ERR);
$errorInfo = $getSourceStatement->errorInfo();
$errorMessage = $errorInfo[2];
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetSourcesById [{$errorMessage}]", \PEAR_LOG_ERR);
}
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetSourcesById [END: Executing PDO statement]", \PEAR_LOG_DEBUG);
foreach ($getSourceStatement->fetchAll() as $row) {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetSourcesById [START: Constructing source obejct]", \PEAR_LOG_DEBUG);
$json = $row["json"];
$source = \Swiftriver\Core\ObjectModel\ObjectFactories\SourceFactory::CreateSourceFromJSON($json);
$sources[] = $source;
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetSourcesById [END: Constructing source obejct]", \PEAR_LOG_DEBUG);
}
$db = null;
}
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetSourcesById [END: Looping through ids]", \PEAR_LOG_DEBUG);
} catch (\PDOException $e) {
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::DeleteContent [An Exception was thrown:]", \PEAR_LOG_ERR);
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::DeleteContent [{$e}]", \PEAR_LOG_ERR);
}
$logger->log("Core::Modules::DataContext::MySQL_V2::DataContext::GetSourcesById [Method Finished]", \PEAR_LOG_DEBUG);
return $sources;
}