/**
  * Check dependency constraints for the package.
  *
  * @param array $dependencies An array of dependencies to check.
  *
  * @return array An array of unsatisfied dependencies.
  */
 public function checkDependencies(array $dependencies)
 {
     $unsatisfied = array();
     $dependencies = xPDOTransport::checkPlatformDependencies($dependencies);
     foreach ($dependencies as $package => $constraint) {
         if (strtolower($package) === strtolower($this->identifier)) {
             continue;
         }
         switch (strtolower($package)) {
             case 'modx':
                 $versionData = $this->xpdo->getVersionData();
                 if (!xPDOTransport::satisfies($versionData['full_version'], $constraint)) {
                     $unsatisfied[$package] = $constraint;
                 }
                 break;
             default:
                 /* get latest installed package version */
                 $latestQuery = $this->xpdo->newQuery('modTransportPackage', array(array("UCASE({$this->xpdo->escape('package_name')}) LIKE UCASE({$this->xpdo->quote($package)})"), 'installed:IS NOT' => null));
                 $latestQuery->sortby('installed', 'DESC');
                 /** @var modTransportPackage $latest */
                 $latest = $this->xpdo->getObject('modTransportPackage', $latestQuery);
                 if ($latest) {
                     $latest->parseSignature();
                     if (xPDOTransport::satisfies($latest->version, $constraint)) {
                         unset($latest);
                         continue;
                     }
                 }
                 $unsatisfied[$package] = $constraint;
                 break;
         }
     }
     return $unsatisfied;
 }
 protected function args(array $args = array())
 {
     if (!is_array($this->xpdo->version)) {
         $this->xpdo->getVersionData();
     }
     $baseArgs = array('api_key' => $this->get('api_key'), 'username' => $this->get('username'), 'uuid' => $this->xpdo->uuid, 'database' => $this->xpdo->config['dbtype'], 'revolution_version' => $this->xpdo->version['code_name'] . '-' . $this->xpdo->version['full_version'], 'supports' => $this->xpdo->version['code_name'] . '-' . $this->xpdo->version['full_version'], 'http_host' => $this->xpdo->getOption('http_host'), 'php_version' => XPDO_PHP_VERSION, 'language' => $this->xpdo->getOption('manager_language'));
     return array_merge($baseArgs, $args);
 }