File "RESTControllers.php"
Full Path: /home/warrior1/public_html/plugins/google-listings-and-ads/src/API/Site/RESTControllers.php
File size: 1.41 KB
MIME-type: text/x-php
Charset: utf-8
<?php
declare( strict_types=1 );
namespace Automattic\WooCommerce\GoogleListingsAndAds\API\Site;
use Automattic\WooCommerce\GoogleListingsAndAds\API\Site\Controllers\BaseController;
use Automattic\WooCommerce\GoogleListingsAndAds\Exception\ValidateInterface;
use Automattic\WooCommerce\GoogleListingsAndAds\Infrastructure\Registerable;
use Automattic\WooCommerce\GoogleListingsAndAds\Infrastructure\Service;
use Psr\Container\ContainerInterface;
/**
* Class RESTControllers
*
* @package Automattic\WooCommerce\GoogleListingsAndAds\API\Site
*/
class RESTControllers implements Service, Registerable {
use ValidateInterface;
/**
* Our container object.
*
* @var ContainerInterface
*/
protected $container;
/**
* RESTControllers constructor.
*
* @param ContainerInterface $container
*/
public function __construct( ContainerInterface $container ) {
$this->container = $container;
}
/**
* Register a service.
*/
public function register(): void {
add_action(
'rest_api_init',
function() {
$this->register_controllers();
}
);
}
/**
* Register our individual rest controllers.
*/
protected function register_controllers(): void {
/** @var BaseController[] $controllers */
$controllers = $this->container->get( 'rest_controller' );
foreach ( $controllers as $controller ) {
$this->validate_instanceof( $controller, BaseController::class );
$controller->register();
}
}
}