public function getEnvironment($id, Project $project, $refresh = null, $tryMachineName = false)
{
// Statically cache not found environments.
static $notFound = [];
$cacheKey = $project->id . ':' . $id . ($tryMachineName ? ':mn' : '');
if (!$refresh && isset($notFound[$cacheKey])) {
return false;
}
$environments = $this->getEnvironments($project, $refresh);
if (isset($environments[$id])) {
return $environments[$id];
}
if ($tryMachineName) {
foreach ($environments as $environment) {
if ($environment->machine_name === $id) {
return $environment;
}
}
}
$notFound[$cacheKey] = true;
return false;
}