private function Trigger::triggerBuildHook in Build Hooks 3.x
Same name and namespace in other branches
- 8.2 src/Trigger.php \Drupal\build_hooks\Trigger::triggerBuildHook()
Triggers a build hook by the details.
Parameters
\Drupal\build_hooks\BuildHookDetails $buildHookDetails: An object that holds the information about the call.
\Drupal\build_hooks\Entity\FrontendEnvironmentInterface $frontendEnvironment: The plugin which performs the trigger.
Return value
\Drupal\build_hooks\Event\BuildTrigger Trigger event.
Throws
\GuzzleHttp\Exception\GuzzleException
1 call to Trigger::triggerBuildHook()
- Trigger::triggerBuildHookForEnvironment in src/
Trigger.php - Trigger a deployment for a frontend environment.
File
- src/
Trigger.php, line 245
Class
- Trigger
- Defines a service for triggering deployments.
Namespace
Drupal\build_hooksCode
private function triggerBuildHook(BuildHookDetails $buildHookDetails, FrontendEnvironmentInterface $frontendEnvironment) {
/** @var \Drupal\build_hooks\DeploymentStorageHandlerInterface $deployment_storage */
$deployment_storage = $this->entityTypeManager
->getStorage('build_hooks_deployment');
$deployment = $deployment_storage
->getOrCreateNextDeploymentForEnvironment($frontendEnvironment);
$triggerEvent = new BuildTrigger($buildHookDetails, $frontendEnvironment, $deployment);
$frontendEnvironment
->getPlugin()
->preDeploymentTrigger($triggerEvent);
$this->eventDispatcher
->dispatch(BuildTrigger::class, $triggerEvent);
if (!$triggerEvent
->shouldBuild()) {
return $triggerEvent;
}
$response = $this->httpClient
->request($buildHookDetails
->getMethod(), $buildHookDetails
->getUrl(), $buildHookDetails
->getOptions());
$event = new ResponseEvent($response, $frontendEnvironment
->getPlugin());
$this->eventDispatcher
->dispatch(ResponseEvent::EVENT_NAME, $event);
return $triggerEvent
->setResponse($response);
}