integrations = $this->ensure_integration( $integrations ); } /** * Adds an integration to the group. * * @param Integration $integration The integration to add. * * @return void */ public function add_integration( Integration $integration ) { $this->integrations[] = $integration; } /** * Initializes all registered integrations. * * @return void */ public function register_hooks() { array_map( function( Integration $integration ) { $integration->register_hooks(); }, $this->integrations ); } /** * Ensures the list of Integrations are loaded. * * @param array $integrations List of Integrations to load. * * @return array List of Integrations. */ protected function ensure_integration( array $integrations ) { return array_filter( $integrations, function( $integration ) { return $integration instanceof Integration; } ); } }