public function execute($packageName, $textConstraint = '*', $onlyLocal = true)
{
// Find packages that are or provide the requested package first
$pool = $this->getRequiredPool($packageName, $textConstraint, $onlyLocal);
$packages = $pool->whatProvides($packageName);
if (empty($packages)) {
// sprintf('Could not find package "%s" in your project', $packageName),
return null;
}
// Get the needle stack
$needles = $this->getNeedles($packageName, $packages, $this->inverted);
// Parse constraint if one was supplied
$constraint = null;
if ($textConstraint !== '*') {
$versionParser = new VersionParser();
$constraint = $versionParser->parseConstraints($textConstraint);
}
$extra = $constraint !== null ? sprintf(' in versions %s "%s"', $this->inverted ? 'not matching' : 'matching', $textConstraint) : '';
// Resolve dependencies
/** @var InstalledFilesystemRepository $repository */
$repository = $this->getComposer()->getRepositoryManager()->getLocalRepository();
$results = $repository->getDependents($needles, $constraint, $this->inverted, $this->recursive);
if (empty($results)) {
// sprintf('There is no installed package depending on "%s"%s', $packageName, $extra),
return null;
}
// sprintf('The following packages are involved in the dependency on "%s"%s', $packageName, $extra),
return $this->getDependencies($results);
}