Integration_Abstract
Class Integration_Abstract
Source
File: src/Events/Integrations/Integration_Abstract.php
abstract class Integration_Abstract extends \tad_DI52_ServiceProvider {
/**
* Binds and sets up implementations.
*
* @since 6.0.4
*/
public function register() {
// Registers this provider as a singleton for ease of use.
$this->container->singleton( self::class, self::class );
// Prevents any loading in case we shouldn't load.
if ( ! $this->should_load() ) {
return;
}
$this->load();
}
/**
* Gets the slug for this integration.
*
* @since 6.0.4
*
* @return string
*/
abstract public static function get_slug(): string;
/**
* Determines whether this integration should load.
*
* @since 6.0.4
*
* @return bool
*/
public function should_load(): bool {
return $this->filter_should_load( $this->load_conditionals() );
}
/**
* Filters whether the integration should load.
*
* @since 6.0.4
*
* @param bool $value Whether the integration should load.
*
* @return bool
*/
protected function filter_should_load( bool $value ): bool {
$slug = static::get_slug();
$type = static::get_type();
/**
* Filters if integrations should be loaded.
*
* @since 6.0.4
*
* @param bool $value Whether the integration should load.
* @param string $type Type of integration we are loading.
* @param string $slug Slug of the integration we are loading.
*/
$value = apply_filters( 'tec_events_integrations_should_load', $value, $type, $slug );
/**
* Filters if integrations of the current type should be loaded.
*
* @since 6.0.4
*
* @param bool $value Whether the integration should load.
* @param string $slug Slug of the integration we are loading.
*/
$value = apply_filters( "tec_events_integrations_{$type}_should_load", $value, $slug );
/**
* Filters if a specific integration (by type and slug) should be loaded.
*
* @since 6.0.4
*
* @param bool $value Whether the integration should load.
*/
return (bool) apply_filters( "tec_events_integrations_{$type}_{$slug}_should_load", $value );
}
/**
* Determines if the integration in question should be loaded.
*
* @since 6.0.4
*
* @return bool
*/
abstract public function load_conditionals(): bool;
/**
* Loads the integration itself.
*
* @since 6.0.4
*
* @return void
*/
abstract protected function load(): void;
/**
* Determines the integration type.
*
* @since 6.0.4
*
* @return string
*/
abstract public static function get_type(): string;
}
Changelog
| Version | Description |
|---|---|
| 6.1.1 | Extends the Common Integration |
| 6.0.4 | Introduced. |
Methods
- get_parent
- get_slug — Gets the slug for this integration.
- get_type — Determines the integration type.
- load_conditionals — Determines if the integration in question should be loaded.
- register — Binds and sets up implementations.
- should_load — Determines whether this integration should load.