/** * 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); }