Swiftriver\Core\Modules\DataContext\MySql_V2\DataContext::GetSourcesById PHP Method

GetSourcesById() public static method

Given the IDs of Sources, this method gets them from the underlying data store
public static GetSourcesById ( string[] $ids ) : Source[]
$ids string[]
return Swiftriver\Core\ObjectModel\Source[]
    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;
    }