0, get_class( $this ) . '::VERSION must be set' ); assert( static::BASE_ROUTE, get_class( $this ) . '::BASE_ROUTE must be set' ); $this->namespace = REST_API_NAMESPACE . static::VERSION; add_action( 'rest_api_init', [ $this, 'register_routes' ] ); } /** * Retrieve this controller's REST API base path, including namespace. * * @return string */ public static function get_base_route(): string { return REST_API_NAMESPACE . static::VERSION . '/' . static::BASE_ROUTE; } /** * Register REST routes. */ abstract public function register_routes(); /** * Default permission callback for this controller's routes. * * @param WP_REST_Request $request Full data about the request. * * @return bool * * phpcs:disable Generic.CodeAnalysis.UnusedFunctionParameter.Found */ public function permission_callback( WP_REST_Request $request ): bool { return code_snippets()->current_user_can(); } }