PluginProbe
Elementor Website Builder – more than just a page builder / 3.35.0-dev2
Elementor Website Builder – more than just a page builder v3.35.0-dev2
4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
elementor / modules / atomic-widgets / query / query-builder-factory.php

query-builder-factory.php in Elementor Website Builder – more than just a page builder 3.35.0-dev2, at modules/atomic-widgets/query/query-builder-factory.php

34 lines 850 B
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Elementor\Modules\AtomicWidgets\Query;
4
5 use Elementor\Modules\WpRest\Classes\Post_Query;
6 use Elementor\Modules\WpRest\Classes\Term_Query;
7 use Elementor\Modules\WpRest\Classes\User_Query;
8
9 if ( ! defined( 'ABSPATH' ) ) {
10 exit; // Exit if accessed directly.
11 }
12
13 class Query_Builder_Factory {
14 const ENDPOINT_KEY = 'endpoint';
15
16 private const BUILDERS = [
17 Post_Query::ENDPOINT => Post_Query_Builder::class,
18 Term_Query::ENDPOINT => Term_Query_Builder::class,
19 User_Query::ENDPOINT => User_Query_Builder::class,
20 ];
21
22 public static function create( ?array $config = [] ): Query_Builder_Base {
23 $endpoint = $config[ self::ENDPOINT_KEY ] ?? Post_Query::ENDPOINT;
24
25 $class = self::BUILDERS[ $endpoint ] ?? null;
26
27 if ( ! $class ) {
28 throw new \Exception( 'Unsupported query type' );
29 }
30
31 return new $class( $config ?? [] );
32 }
33 }
34