/**
  * Fetch locomotive data from Memcached/Redis/Database
  * @since Version 3.9.1
  * @param \Railpage\Locos\Locomotive $Loco
  * @return array
  */
 public static function fetchLocomotive(Locomotive $Loco)
 {
     $AppCore = new AppCore();
     $Memcached = AppCore::getMemcached();
     $Database = $AppCore->getDatabaseConnection();
     if (!($row = $Memcached->fetch($Loco->mckey))) {
         $timer = Debug::getTimer();
         $query = "SELECT l.*, s.name AS loco_status, ow.operator_name AS owner_name, op.operator_name AS operator_name\n                        FROM loco_unit AS l\n                        LEFT JOIN loco_status AS s ON l.loco_status_id = s.id\n                        LEFT JOIN operators AS ow ON ow.operator_id = l.owner_id\n                        LEFT JOIN operators AS op ON op.operator_id = l.operator_id\n                        WHERE l.loco_id = ?";
         $row = $Database->fetchRow($query, $Loco->id);
         Debug::logEvent("Zend_DB: Fetch loco ID", $timer);
         $Memcached->save($Loco->mckey, $row, strtotime("+1 year"));
     }
     return $row;
 }