Completed
Branch rest-authorization (c7240a)
by
unknown
21:21 queued 18:16
created
core/services/bootstrap/BootstrapDependencyInjectionContainer.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -78,13 +78,13 @@
 block discarded – undo
78 78
         // EE_Dependency_Map: info about how to load classes required by other classes
79 79
         espresso_load_required(
80 80
             'EE_Dependency_Map',
81
-            EE_CORE . 'EE_Dependency_Map.core.php'
81
+            EE_CORE.'EE_Dependency_Map.core.php'
82 82
         );
83 83
         $this->dependency_map = EE_Dependency_Map::instance($this->class_cache);
84 84
         // EE_Registry: central repository for classes (legacy)
85 85
         espresso_load_required(
86 86
             'EE_Registry',
87
-            EE_CORE . 'EE_Registry.core.php'
87
+            EE_CORE.'EE_Registry.core.php'
88 88
         );
89 89
         $this->registry = EE_Registry::instance(
90 90
             $this->dependency_map,
Please login to merge, or discard this patch.
Indentation   +119 added lines, -119 removed lines patch added patch discarded remove patch
@@ -24,123 +24,123 @@
 block discarded – undo
24 24
  */
25 25
 class BootstrapDependencyInjectionContainer
26 26
 {
27
-    /**
28
-     * @var EE_Dependency_Map $dependency_map
29
-     */
30
-    protected $dependency_map;
31
-
32
-    /**
33
-     * @type LoaderInterface $loader
34
-     */
35
-    protected $loader;
36
-
37
-    /**
38
-     * @var EE_Registry $registry
39
-     */
40
-    protected $registry;
41
-
42
-    /**
43
-     * @var ClassInterfaceCache $class_cache
44
-     */
45
-    private $class_cache;
46
-
47
-    /**
48
-     * @var Mirror
49
-     */
50
-    private $mirror;
51
-
52
-    /**
53
-     * @var ObjectIdentifier
54
-     */
55
-    private $object_identifier;
56
-
57
-
58
-    /**
59
-     * Can't use this just yet until we exorcise some more of our singleton usage from core
60
-     */
61
-    public function buildDependencyInjectionContainer()
62
-    {
63
-        // build DI container
64
-        // $OpenCoffeeShop = new EventEspresso\core\services\container\OpenCoffeeShop();
65
-        // $OpenCoffeeShop->addRecipes();
66
-        // $CoffeeShop = $OpenCoffeeShop->CoffeeShop();
67
-    }
68
-
69
-
70
-    /**
71
-     * Setups  EE_Registry and EE_Dependency_Map
72
-     *
73
-     * @throws EE_Error
74
-     */
75
-    public function buildLegacyDependencyInjectionContainer()
76
-    {
77
-        $this->class_cache = new ClassInterfaceCache();
78
-        $this->object_identifier = new ObjectIdentifier($this->class_cache);
79
-        $this->mirror = new Mirror();
80
-        // EE_Dependency_Map: info about how to load classes required by other classes
81
-        espresso_load_required(
82
-            'EE_Dependency_Map',
83
-            EE_CORE . 'EE_Dependency_Map.core.php'
84
-        );
85
-        $this->dependency_map = EE_Dependency_Map::instance($this->class_cache);
86
-        // EE_Registry: central repository for classes (legacy)
87
-        espresso_load_required(
88
-            'EE_Registry',
89
-            EE_CORE . 'EE_Registry.core.php'
90
-        );
91
-        $this->registry = EE_Registry::instance(
92
-            $this->dependency_map,
93
-            $this->mirror,
94
-            $this->class_cache,
95
-            $this->object_identifier
96
-        );
97
-    }
98
-
99
-
100
-    /**
101
-     * Performs initial setup for the generic Loader
102
-     *
103
-     * @throws InvalidDataTypeException
104
-     * @throws InvalidInterfaceException
105
-     * @throws InvalidArgumentException
106
-     */
107
-    public function buildLoader()
108
-    {
109
-        $this->loader = LoaderFactory::getLoader(
110
-            $this->registry,
111
-            $this->class_cache,
112
-            $this->object_identifier
113
-        );
114
-        $this->loader->share('EventEspresso\core\services\loaders\ClassInterfaceCache', $this->class_cache);
115
-        $this->loader->share('EventEspresso\core\services\loaders\ObjectIdentifier', $this->object_identifier);
116
-        $this->loader->share('EventEspresso\core\services\container\Mirror', $this->mirror);
117
-        $this->dependency_map->setLoader($this->loader);
118
-    }
119
-
120
-
121
-    /**
122
-     * @return EE_Dependency_Map
123
-     */
124
-    public function getDependencyMap()
125
-    {
126
-        return $this->dependency_map;
127
-    }
128
-
129
-
130
-    /**
131
-     * @return EE_Registry
132
-     */
133
-    public function getRegistry()
134
-    {
135
-        return $this->registry;
136
-    }
137
-
138
-
139
-    /**
140
-     * @return LoaderInterface
141
-     */
142
-    public function getLoader()
143
-    {
144
-        return $this->loader;
145
-    }
27
+	/**
28
+	 * @var EE_Dependency_Map $dependency_map
29
+	 */
30
+	protected $dependency_map;
31
+
32
+	/**
33
+	 * @type LoaderInterface $loader
34
+	 */
35
+	protected $loader;
36
+
37
+	/**
38
+	 * @var EE_Registry $registry
39
+	 */
40
+	protected $registry;
41
+
42
+	/**
43
+	 * @var ClassInterfaceCache $class_cache
44
+	 */
45
+	private $class_cache;
46
+
47
+	/**
48
+	 * @var Mirror
49
+	 */
50
+	private $mirror;
51
+
52
+	/**
53
+	 * @var ObjectIdentifier
54
+	 */
55
+	private $object_identifier;
56
+
57
+
58
+	/**
59
+	 * Can't use this just yet until we exorcise some more of our singleton usage from core
60
+	 */
61
+	public function buildDependencyInjectionContainer()
62
+	{
63
+		// build DI container
64
+		// $OpenCoffeeShop = new EventEspresso\core\services\container\OpenCoffeeShop();
65
+		// $OpenCoffeeShop->addRecipes();
66
+		// $CoffeeShop = $OpenCoffeeShop->CoffeeShop();
67
+	}
68
+
69
+
70
+	/**
71
+	 * Setups  EE_Registry and EE_Dependency_Map
72
+	 *
73
+	 * @throws EE_Error
74
+	 */
75
+	public function buildLegacyDependencyInjectionContainer()
76
+	{
77
+		$this->class_cache = new ClassInterfaceCache();
78
+		$this->object_identifier = new ObjectIdentifier($this->class_cache);
79
+		$this->mirror = new Mirror();
80
+		// EE_Dependency_Map: info about how to load classes required by other classes
81
+		espresso_load_required(
82
+			'EE_Dependency_Map',
83
+			EE_CORE . 'EE_Dependency_Map.core.php'
84
+		);
85
+		$this->dependency_map = EE_Dependency_Map::instance($this->class_cache);
86
+		// EE_Registry: central repository for classes (legacy)
87
+		espresso_load_required(
88
+			'EE_Registry',
89
+			EE_CORE . 'EE_Registry.core.php'
90
+		);
91
+		$this->registry = EE_Registry::instance(
92
+			$this->dependency_map,
93
+			$this->mirror,
94
+			$this->class_cache,
95
+			$this->object_identifier
96
+		);
97
+	}
98
+
99
+
100
+	/**
101
+	 * Performs initial setup for the generic Loader
102
+	 *
103
+	 * @throws InvalidDataTypeException
104
+	 * @throws InvalidInterfaceException
105
+	 * @throws InvalidArgumentException
106
+	 */
107
+	public function buildLoader()
108
+	{
109
+		$this->loader = LoaderFactory::getLoader(
110
+			$this->registry,
111
+			$this->class_cache,
112
+			$this->object_identifier
113
+		);
114
+		$this->loader->share('EventEspresso\core\services\loaders\ClassInterfaceCache', $this->class_cache);
115
+		$this->loader->share('EventEspresso\core\services\loaders\ObjectIdentifier', $this->object_identifier);
116
+		$this->loader->share('EventEspresso\core\services\container\Mirror', $this->mirror);
117
+		$this->dependency_map->setLoader($this->loader);
118
+	}
119
+
120
+
121
+	/**
122
+	 * @return EE_Dependency_Map
123
+	 */
124
+	public function getDependencyMap()
125
+	{
126
+		return $this->dependency_map;
127
+	}
128
+
129
+
130
+	/**
131
+	 * @return EE_Registry
132
+	 */
133
+	public function getRegistry()
134
+	{
135
+		return $this->registry;
136
+	}
137
+
138
+
139
+	/**
140
+	 * @return LoaderInterface
141
+	 */
142
+	public function getLoader()
143
+	{
144
+		return $this->loader;
145
+	}
146 146
 }
Please login to merge, or discard this patch.
core/domain/services/custom_post_types/RegisterCustomTaxonomyTerms.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -65,7 +65,7 @@
 block discarded – undo
65 65
      */
66 66
     public function registerCustomTaxonomyTerm($taxonomy, $term_slug, array $cpt_slugs = array())
67 67
     {
68
-        $this->custom_taxonomy_terms[][ $term_slug ] = new CustomTaxonomyTerm(
68
+        $this->custom_taxonomy_terms[][$term_slug] = new CustomTaxonomyTerm(
69 69
             $taxonomy,
70 70
             $term_slug,
71 71
             $cpt_slugs
Please login to merge, or discard this patch.
Indentation   +165 added lines, -165 removed lines patch added patch discarded remove patch
@@ -15,181 +15,181 @@
 block discarded – undo
15 15
  */
16 16
 class RegisterCustomTaxonomyTerms
17 17
 {
18
-    /**
19
-     * @var array[] $custom_taxonomy_terms
20
-     */
21
-    public $custom_taxonomy_terms = array();
18
+	/**
19
+	 * @var array[] $custom_taxonomy_terms
20
+	 */
21
+	public $custom_taxonomy_terms = array();
22 22
 
23 23
 
24
-    /**
25
-     * RegisterCustomTaxonomyTerms constructor.
26
-     */
27
-    public function __construct()
28
-    {
29
-        // hook into save_post so that we can make sure that the default terms get saved on publish of registered cpts
30
-        // IF they don't have a term for that taxonomy set.
31
-        add_action('save_post', array($this, 'saveDefaultTerm'), 100, 2);
32
-        do_action(
33
-            'AHEE__EventEspresso_core_domain_services_custom_post_types_RegisterCustomTaxonomyTerms__construct_end',
34
-            $this
35
-        );
36
-    }
24
+	/**
25
+	 * RegisterCustomTaxonomyTerms constructor.
26
+	 */
27
+	public function __construct()
28
+	{
29
+		// hook into save_post so that we can make sure that the default terms get saved on publish of registered cpts
30
+		// IF they don't have a term for that taxonomy set.
31
+		add_action('save_post', array($this, 'saveDefaultTerm'), 100, 2);
32
+		do_action(
33
+			'AHEE__EventEspresso_core_domain_services_custom_post_types_RegisterCustomTaxonomyTerms__construct_end',
34
+			$this
35
+		);
36
+	}
37 37
 
38 38
 
39
-    public function registerCustomTaxonomyTerms()
40
-    {
41
-        // setup default terms in any of our taxonomies (but only if we're in admin).
42
-        // Why not added via register_activation_hook?
43
-        // Because it's possible that in future iterations of EE we may add new defaults for specialized taxonomies
44
-        // (think event_types) and register_activation_hook only reliably runs when a user manually activates the plugin.
45
-        // Keep in mind that this will READ these terms if they are deleted by the user.  Hence MUST use terms.
46
-        // if ( is_admin() ) {
47
-        // $this->set_must_use_event_types();
48
-        // }
49
-        // set default terms
50
-        $this->registerCustomTaxonomyTerm(
51
-            'espresso_event_type',
52
-            'single-event',
53
-            array('espresso_events')
54
-        );
55
-    }
39
+	public function registerCustomTaxonomyTerms()
40
+	{
41
+		// setup default terms in any of our taxonomies (but only if we're in admin).
42
+		// Why not added via register_activation_hook?
43
+		// Because it's possible that in future iterations of EE we may add new defaults for specialized taxonomies
44
+		// (think event_types) and register_activation_hook only reliably runs when a user manually activates the plugin.
45
+		// Keep in mind that this will READ these terms if they are deleted by the user.  Hence MUST use terms.
46
+		// if ( is_admin() ) {
47
+		// $this->set_must_use_event_types();
48
+		// }
49
+		// set default terms
50
+		$this->registerCustomTaxonomyTerm(
51
+			'espresso_event_type',
52
+			'single-event',
53
+			array('espresso_events')
54
+		);
55
+	}
56 56
 
57 57
 
58
-    /**
59
-     * Allows us to set what the default will be for terms when a cpt is PUBLISHED.
60
-     *
61
-     * @param string $taxonomy  The taxonomy we're using for the default term
62
-     * @param string $term_slug The slug of the term that will be the default.
63
-     * @param array  $cpt_slugs An array of custom post types we want the default assigned to
64
-     */
65
-    public function registerCustomTaxonomyTerm($taxonomy, $term_slug, array $cpt_slugs = array())
66
-    {
67
-        $this->custom_taxonomy_terms[][ $term_slug ] = new CustomTaxonomyTerm(
68
-            $taxonomy,
69
-            $term_slug,
70
-            $cpt_slugs
71
-        );
72
-    }
58
+	/**
59
+	 * Allows us to set what the default will be for terms when a cpt is PUBLISHED.
60
+	 *
61
+	 * @param string $taxonomy  The taxonomy we're using for the default term
62
+	 * @param string $term_slug The slug of the term that will be the default.
63
+	 * @param array  $cpt_slugs An array of custom post types we want the default assigned to
64
+	 */
65
+	public function registerCustomTaxonomyTerm($taxonomy, $term_slug, array $cpt_slugs = array())
66
+	{
67
+		$this->custom_taxonomy_terms[][ $term_slug ] = new CustomTaxonomyTerm(
68
+			$taxonomy,
69
+			$term_slug,
70
+			$cpt_slugs
71
+		);
72
+	}
73 73
 
74 74
 
75
-    /**
76
-     * hooked into the wp 'save_post' action hook for setting our default terms found in the $_default_terms property
77
-     *
78
-     * @param  int     $post_id ID of CPT being saved
79
-     * @param  WP_Post $post    Post object
80
-     * @return void
81
-     */
82
-    public function saveDefaultTerm($post_id, WP_Post $post)
83
-    {
84
-        if (empty($this->custom_taxonomy_terms)) {
85
-            return;
86
-        }
87
-        // no default terms set so lets just exit.
88
-        foreach ($this->custom_taxonomy_terms as $custom_taxonomy_terms) {
89
-            foreach ($custom_taxonomy_terms as $custom_taxonomy_term) {
90
-                if (
91
-                    $post->post_status === 'publish'
92
-                    && $custom_taxonomy_term instanceof CustomTaxonomyTerm
93
-                    && in_array($post->post_type, $custom_taxonomy_term->customPostTypeSlugs(), true)
94
-                ) {
95
-                    // note some error proofing going on here to save unnecessary db queries
96
-                    $taxonomies = get_object_taxonomies($post->post_type);
97
-                    foreach ($taxonomies as $taxonomy) {
98
-                        $terms = wp_get_post_terms($post_id, $taxonomy);
99
-                        if (empty($terms) && $taxonomy === $custom_taxonomy_term->taxonomySlug()) {
100
-                            wp_set_object_terms(
101
-                                $post_id,
102
-                                array($custom_taxonomy_term->termSlug()),
103
-                                $taxonomy
104
-                            );
105
-                        }
106
-                    }
107
-                }
108
-            }
109
-        }
110
-    }
75
+	/**
76
+	 * hooked into the wp 'save_post' action hook for setting our default terms found in the $_default_terms property
77
+	 *
78
+	 * @param  int     $post_id ID of CPT being saved
79
+	 * @param  WP_Post $post    Post object
80
+	 * @return void
81
+	 */
82
+	public function saveDefaultTerm($post_id, WP_Post $post)
83
+	{
84
+		if (empty($this->custom_taxonomy_terms)) {
85
+			return;
86
+		}
87
+		// no default terms set so lets just exit.
88
+		foreach ($this->custom_taxonomy_terms as $custom_taxonomy_terms) {
89
+			foreach ($custom_taxonomy_terms as $custom_taxonomy_term) {
90
+				if (
91
+					$post->post_status === 'publish'
92
+					&& $custom_taxonomy_term instanceof CustomTaxonomyTerm
93
+					&& in_array($post->post_type, $custom_taxonomy_term->customPostTypeSlugs(), true)
94
+				) {
95
+					// note some error proofing going on here to save unnecessary db queries
96
+					$taxonomies = get_object_taxonomies($post->post_type);
97
+					foreach ($taxonomies as $taxonomy) {
98
+						$terms = wp_get_post_terms($post_id, $taxonomy);
99
+						if (empty($terms) && $taxonomy === $custom_taxonomy_term->taxonomySlug()) {
100
+							wp_set_object_terms(
101
+								$post_id,
102
+								array($custom_taxonomy_term->termSlug()),
103
+								$taxonomy
104
+							);
105
+						}
106
+					}
107
+				}
108
+			}
109
+		}
110
+	}
111 111
 
112 112
 
113
-    /**
114
-     * @return void
115
-     */
116
-    public function setMustUseEventTypes()
117
-    {
118
-        $term_details = array(
119
-            // Attendee's register for the first date-time only
120
-            'single-event'    => array(
121
-                'term' => esc_html__('Single Event', 'event_espresso'),
122
-                'desc' => esc_html__(
123
-                    'A single event that spans one or more consecutive days.',
124
-                    'event_espresso'
125
-                ),
126
-            ),
127
-            // example: a party or two-day long workshop
128
-            // Attendee's can register for any of the date-times
129
-            'multi-event'     => array(
130
-                'term' => esc_html__('Multi Event', 'event_espresso'),
131
-                'desc' => esc_html__(
132
-                    'Multiple, separate, but related events that occur on consecutive days.',
133
-                    'event_espresso'
134
-                ),
135
-            ),
136
-            // example: a three day music festival or week long conference
137
-            // Attendee's register for the first date-time only
138
-            'event-series'    => array(
139
-                'term' => esc_html__('Event Series', 'event_espresso'),
140
-                'desc' => esc_html__(
141
-                    ' Multiple events that occur over multiple non-consecutive days.',
142
-                    'event_espresso'
143
-                ),
144
-            ),
145
-            // example: an 8 week introduction to basket weaving course
146
-            // Attendee's can register for any of the date-times.
147
-            'recurring-event' => array(
148
-                'term' => esc_html__('Recurring Event', 'event_espresso'),
149
-                'desc' => esc_html__(
150
-                    'Multiple events that occur over multiple non-consecutive days.',
151
-                    'event_espresso'
152
-                ),
153
-            ),
154
-            // example: a yoga class
155
-            'ongoing'         => array(
156
-                'term' => esc_html__('Ongoing Event', 'event_espresso'),
157
-                'desc' => esc_html__(
158
-                    'An "event" that people can purchase tickets to gain access for anytime for this event regardless of date times on the event',
159
-                    'event_espresso'
160
-                ),
161
-            )
162
-            // example: access to a museum
163
-            // 'walk-in' => array( esc_html__('Walk In', 'event_espresso'), esc_html__('Single datetime and single entry recurring events. Attendees register for one or multiple datetimes individually.', 'event_espresso') ),
164
-            // 'reservation' => array( esc_html__('Reservation', 'event_espresso'), esc_html__('Reservations are created by specifying available datetimes and quantities. Attendees choose from the available datetimes and specify the quantity available (if the maximum is greater than 1)') ), //@TODO to avoid confusion we'll implement this in a later iteration > EE4.1
165
-            // 'multiple-session' => array( esc_html__('Multiple Session', 'event_espresso'), esc_html__('Multiple event, multiple datetime, hierarchically organized, custom entry events. Attendees may be required to register for a parent event before being allowed to register for child events. Attendees can register for any combination of child events as long as the datetimes do not conflict. Parent and child events may have additional fees or registration questions.') ), //@TODO to avoid confusion we'll implement this in a later iteration > EE4.1
166
-            // 'appointment' => array( esc_html__('Appointments', 'event_espresso'), esc_html__('Time slotted events where datetimes are generally in hours or minutes. For example, attendees can register for a single 15 minute or 1 hour time slot and this type of availability frequently reoccurs.', 'event_espresso') )
167
-        );
168
-        $this->setMustUseTerms('espresso_event_type', $term_details);
169
-    }
113
+	/**
114
+	 * @return void
115
+	 */
116
+	public function setMustUseEventTypes()
117
+	{
118
+		$term_details = array(
119
+			// Attendee's register for the first date-time only
120
+			'single-event'    => array(
121
+				'term' => esc_html__('Single Event', 'event_espresso'),
122
+				'desc' => esc_html__(
123
+					'A single event that spans one or more consecutive days.',
124
+					'event_espresso'
125
+				),
126
+			),
127
+			// example: a party or two-day long workshop
128
+			// Attendee's can register for any of the date-times
129
+			'multi-event'     => array(
130
+				'term' => esc_html__('Multi Event', 'event_espresso'),
131
+				'desc' => esc_html__(
132
+					'Multiple, separate, but related events that occur on consecutive days.',
133
+					'event_espresso'
134
+				),
135
+			),
136
+			// example: a three day music festival or week long conference
137
+			// Attendee's register for the first date-time only
138
+			'event-series'    => array(
139
+				'term' => esc_html__('Event Series', 'event_espresso'),
140
+				'desc' => esc_html__(
141
+					' Multiple events that occur over multiple non-consecutive days.',
142
+					'event_espresso'
143
+				),
144
+			),
145
+			// example: an 8 week introduction to basket weaving course
146
+			// Attendee's can register for any of the date-times.
147
+			'recurring-event' => array(
148
+				'term' => esc_html__('Recurring Event', 'event_espresso'),
149
+				'desc' => esc_html__(
150
+					'Multiple events that occur over multiple non-consecutive days.',
151
+					'event_espresso'
152
+				),
153
+			),
154
+			// example: a yoga class
155
+			'ongoing'         => array(
156
+				'term' => esc_html__('Ongoing Event', 'event_espresso'),
157
+				'desc' => esc_html__(
158
+					'An "event" that people can purchase tickets to gain access for anytime for this event regardless of date times on the event',
159
+					'event_espresso'
160
+				),
161
+			)
162
+			// example: access to a museum
163
+			// 'walk-in' => array( esc_html__('Walk In', 'event_espresso'), esc_html__('Single datetime and single entry recurring events. Attendees register for one or multiple datetimes individually.', 'event_espresso') ),
164
+			// 'reservation' => array( esc_html__('Reservation', 'event_espresso'), esc_html__('Reservations are created by specifying available datetimes and quantities. Attendees choose from the available datetimes and specify the quantity available (if the maximum is greater than 1)') ), //@TODO to avoid confusion we'll implement this in a later iteration > EE4.1
165
+			// 'multiple-session' => array( esc_html__('Multiple Session', 'event_espresso'), esc_html__('Multiple event, multiple datetime, hierarchically organized, custom entry events. Attendees may be required to register for a parent event before being allowed to register for child events. Attendees can register for any combination of child events as long as the datetimes do not conflict. Parent and child events may have additional fees or registration questions.') ), //@TODO to avoid confusion we'll implement this in a later iteration > EE4.1
166
+			// 'appointment' => array( esc_html__('Appointments', 'event_espresso'), esc_html__('Time slotted events where datetimes are generally in hours or minutes. For example, attendees can register for a single 15 minute or 1 hour time slot and this type of availability frequently reoccurs.', 'event_espresso') )
167
+		);
168
+		$this->setMustUseTerms('espresso_event_type', $term_details);
169
+	}
170 170
 
171 171
 
172
-    /**
173
-     * wrapper method for handling the setting up of initial terms in the db (if they don't already exist).
174
-     * Note this should ONLY be used for terms that always must be present.  Be aware that if an initial term is
175
-     * deleted then it WILL be recreated.
176
-     *
177
-     * @param string $taxonomy     The name of the taxonomy
178
-     * @param array  $term_details An array of term details indexed by slug and containing Name of term, and
179
-     *                             description as the elements in the array
180
-     * @return void
181
-     */
182
-    public function setMustUseTerms($taxonomy, $term_details)
183
-    {
184
-        $term_details = (array) $term_details;
185
-        foreach ($term_details as $slug => $details) {
186
-            if (isset($details['term'], $details['desc']) && ! term_exists($slug, $taxonomy)) {
187
-                $insert_arr = array(
188
-                    'slug'        => $slug,
189
-                    'description' => $details['desc'],
190
-                );
191
-                wp_insert_term($details['term'], $taxonomy, $insert_arr);
192
-            }
193
-        }
194
-    }
172
+	/**
173
+	 * wrapper method for handling the setting up of initial terms in the db (if they don't already exist).
174
+	 * Note this should ONLY be used for terms that always must be present.  Be aware that if an initial term is
175
+	 * deleted then it WILL be recreated.
176
+	 *
177
+	 * @param string $taxonomy     The name of the taxonomy
178
+	 * @param array  $term_details An array of term details indexed by slug and containing Name of term, and
179
+	 *                             description as the elements in the array
180
+	 * @return void
181
+	 */
182
+	public function setMustUseTerms($taxonomy, $term_details)
183
+	{
184
+		$term_details = (array) $term_details;
185
+		foreach ($term_details as $slug => $details) {
186
+			if (isset($details['term'], $details['desc']) && ! term_exists($slug, $taxonomy)) {
187
+				$insert_arr = array(
188
+					'slug'        => $slug,
189
+					'description' => $details['desc'],
190
+				);
191
+				wp_insert_term($details['term'], $taxonomy, $insert_arr);
192
+			}
193
+		}
194
+	}
195 195
 }
Please login to merge, or discard this patch.
core/services/loaders/CoreLoader.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -47,7 +47,7 @@
 block discarded – undo
47 47
      */
48 48
     public function __construct($generator)
49 49
     {
50
-        if (! ($generator instanceof EE_Registry || $generator instanceof CoffeeShop)) {
50
+        if ( ! ($generator instanceof EE_Registry || $generator instanceof CoffeeShop)) {
51 51
             throw new InvalidArgumentException(
52 52
                 esc_html__(
53 53
                     'The CoreLoader class must receive an instance of EE_Registry or the CoffeeShop DI container.',
Please login to merge, or discard this patch.
Indentation   +101 added lines, -101 removed lines patch added patch discarded remove patch
@@ -28,111 +28,111 @@
 block discarded – undo
28 28
  */
29 29
 class CoreLoader implements LoaderDecoratorInterface
30 30
 {
31
-    /**
32
-     * @var EE_Registry|CoffeeShop $generator
33
-     */
34
-    private $generator;
31
+	/**
32
+	 * @var EE_Registry|CoffeeShop $generator
33
+	 */
34
+	private $generator;
35 35
 
36 36
 
37
-    /**
38
-     * CoreLoader constructor.
39
-     *
40
-     * @param EE_Registry|CoffeeShop $generator
41
-     * @throws InvalidArgumentException
42
-     */
43
-    public function __construct($generator)
44
-    {
45
-        if (! ($generator instanceof EE_Registry || $generator instanceof CoffeeShop)) {
46
-            throw new InvalidArgumentException(
47
-                esc_html__(
48
-                    'The CoreLoader class must receive an instance of EE_Registry or the CoffeeShop DI container.',
49
-                    'event_espresso'
50
-                )
51
-            );
52
-        }
53
-        $this->generator = $generator;
54
-    }
37
+	/**
38
+	 * CoreLoader constructor.
39
+	 *
40
+	 * @param EE_Registry|CoffeeShop $generator
41
+	 * @throws InvalidArgumentException
42
+	 */
43
+	public function __construct($generator)
44
+	{
45
+		if (! ($generator instanceof EE_Registry || $generator instanceof CoffeeShop)) {
46
+			throw new InvalidArgumentException(
47
+				esc_html__(
48
+					'The CoreLoader class must receive an instance of EE_Registry or the CoffeeShop DI container.',
49
+					'event_espresso'
50
+				)
51
+			);
52
+		}
53
+		$this->generator = $generator;
54
+	}
55 55
 
56 56
 
57
-    /**
58
-     * Calls the appropriate loading method from the installed generator;
59
-     * If EE_Registry is being used, then the additional parameters for the EE_Registry::create() method
60
-     * can be added to the $arguments array and they will be extracted and passed to EE_Registry::create(),
61
-     * but NOT to the class being instantiated.
62
-     * This is done by adding the parameters to the $arguments array as follows:
63
-     *  array(
64
-     *      'EE_Registry::create(from_db)'   => true, // boolean value, default = false
65
-     *      'EE_Registry::create(load_only)' => true, // boolean value, default = false
66
-     *      'EE_Registry::create(addon)'     => true, // boolean value, default = false
67
-     *  )
68
-     *
69
-     * @param string $fqcn
70
-     * @param array  $arguments
71
-     * @param bool   $shared
72
-     * @return mixed
73
-     * @throws OutOfBoundsException
74
-     * @throws ServiceExistsException
75
-     * @throws InstantiationException
76
-     * @throws InvalidIdentifierException
77
-     * @throws InvalidDataTypeException
78
-     * @throws InvalidClassException
79
-     * @throws EE_Error
80
-     * @throws ServiceNotFoundException
81
-     * @throws ReflectionException
82
-     * @throws InvalidInterfaceException
83
-     * @throws InvalidArgumentException
84
-     */
85
-    public function load($fqcn, $arguments = array(), $shared = true)
86
-    {
87
-        $shared = filter_var($shared, FILTER_VALIDATE_BOOLEAN);
88
-        if ($this->generator instanceof EE_Registry) {
89
-            // check if additional EE_Registry::create() arguments have been passed
90
-            // from_db
91
-            $from_db = isset($arguments['EE_Registry::create(from_db)'])
92
-                ? filter_var($arguments['EE_Registry::create(from_db)'], FILTER_VALIDATE_BOOLEAN)
93
-                : false;
94
-            // load_only
95
-            $load_only = isset($arguments['EE_Registry::create(load_only)'])
96
-                ? filter_var($arguments['EE_Registry::create(load_only)'], FILTER_VALIDATE_BOOLEAN)
97
-                : false;
98
-            // addon
99
-            $addon = isset($arguments['EE_Registry::create(addon)'])
100
-                ? filter_var($arguments['EE_Registry::create(addon)'], FILTER_VALIDATE_BOOLEAN)
101
-                : false;
102
-            unset(
103
-                $arguments['EE_Registry::create(from_db)'],
104
-                $arguments['EE_Registry::create(load_only)'],
105
-                $arguments['EE_Registry::create(addon)']
106
-            );
107
-            // addons need to be cached on EE_Registry
108
-            $shared = $addon ? true : $shared;
109
-            return $this->generator->create(
110
-                $fqcn,
111
-                $arguments,
112
-                $shared,
113
-                $from_db,
114
-                $load_only,
115
-                $addon
116
-            );
117
-        }
118
-        return $this->generator->brew(
119
-            $fqcn,
120
-            $arguments,
121
-            $shared ? CoffeeMaker::BREW_SHARED : CoffeeMaker::BREW_NEW
122
-        );
123
-    }
57
+	/**
58
+	 * Calls the appropriate loading method from the installed generator;
59
+	 * If EE_Registry is being used, then the additional parameters for the EE_Registry::create() method
60
+	 * can be added to the $arguments array and they will be extracted and passed to EE_Registry::create(),
61
+	 * but NOT to the class being instantiated.
62
+	 * This is done by adding the parameters to the $arguments array as follows:
63
+	 *  array(
64
+	 *      'EE_Registry::create(from_db)'   => true, // boolean value, default = false
65
+	 *      'EE_Registry::create(load_only)' => true, // boolean value, default = false
66
+	 *      'EE_Registry::create(addon)'     => true, // boolean value, default = false
67
+	 *  )
68
+	 *
69
+	 * @param string $fqcn
70
+	 * @param array  $arguments
71
+	 * @param bool   $shared
72
+	 * @return mixed
73
+	 * @throws OutOfBoundsException
74
+	 * @throws ServiceExistsException
75
+	 * @throws InstantiationException
76
+	 * @throws InvalidIdentifierException
77
+	 * @throws InvalidDataTypeException
78
+	 * @throws InvalidClassException
79
+	 * @throws EE_Error
80
+	 * @throws ServiceNotFoundException
81
+	 * @throws ReflectionException
82
+	 * @throws InvalidInterfaceException
83
+	 * @throws InvalidArgumentException
84
+	 */
85
+	public function load($fqcn, $arguments = array(), $shared = true)
86
+	{
87
+		$shared = filter_var($shared, FILTER_VALIDATE_BOOLEAN);
88
+		if ($this->generator instanceof EE_Registry) {
89
+			// check if additional EE_Registry::create() arguments have been passed
90
+			// from_db
91
+			$from_db = isset($arguments['EE_Registry::create(from_db)'])
92
+				? filter_var($arguments['EE_Registry::create(from_db)'], FILTER_VALIDATE_BOOLEAN)
93
+				: false;
94
+			// load_only
95
+			$load_only = isset($arguments['EE_Registry::create(load_only)'])
96
+				? filter_var($arguments['EE_Registry::create(load_only)'], FILTER_VALIDATE_BOOLEAN)
97
+				: false;
98
+			// addon
99
+			$addon = isset($arguments['EE_Registry::create(addon)'])
100
+				? filter_var($arguments['EE_Registry::create(addon)'], FILTER_VALIDATE_BOOLEAN)
101
+				: false;
102
+			unset(
103
+				$arguments['EE_Registry::create(from_db)'],
104
+				$arguments['EE_Registry::create(load_only)'],
105
+				$arguments['EE_Registry::create(addon)']
106
+			);
107
+			// addons need to be cached on EE_Registry
108
+			$shared = $addon ? true : $shared;
109
+			return $this->generator->create(
110
+				$fqcn,
111
+				$arguments,
112
+				$shared,
113
+				$from_db,
114
+				$load_only,
115
+				$addon
116
+			);
117
+		}
118
+		return $this->generator->brew(
119
+			$fqcn,
120
+			$arguments,
121
+			$shared ? CoffeeMaker::BREW_SHARED : CoffeeMaker::BREW_NEW
122
+		);
123
+	}
124 124
 
125 125
 
126
-    /**
127
-     * calls reset() on generator if method exists
128
-     *
129
-     * @throws EE_Error
130
-     * @throws ReflectionException
131
-     */
132
-    public function reset()
133
-    {
134
-        if ($this->generator instanceof ResettableInterface) {
135
-            $this->generator->reset();
136
-        }
137
-    }
126
+	/**
127
+	 * calls reset() on generator if method exists
128
+	 *
129
+	 * @throws EE_Error
130
+	 * @throws ReflectionException
131
+	 */
132
+	public function reset()
133
+	{
134
+		if ($this->generator instanceof ResettableInterface) {
135
+			$this->generator->reset();
136
+		}
137
+	}
138 138
 }
Please login to merge, or discard this patch.
core/services/loaders/ObjectIdentifier.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -73,7 +73,7 @@  discard block
 block discarded – undo
73 73
     public function fqcnMatchesObjectIdentifier($fqcn, $object_identifier)
74 74
     {
75 75
         return $fqcn === $object_identifier
76
-               || strpos($object_identifier, $fqcn . ObjectIdentifier::DELIMITER) === 0;
76
+               || strpos($object_identifier, $fqcn.ObjectIdentifier::DELIMITER) === 0;
77 77
     }
78 78
 
79 79
 
@@ -93,8 +93,8 @@  discard block
 block discarded – undo
93 93
         )
94 94
             ? $this->getIdentifierForArguments($arguments)
95 95
             : '';
96
-        if (! empty($identifier)) {
97
-            $fqcn .= ObjectIdentifier::DELIMITER . md5($identifier);
96
+        if ( ! empty($identifier)) {
97
+            $fqcn .= ObjectIdentifier::DELIMITER.md5($identifier);
98 98
         }
99 99
         return $fqcn;
100 100
     }
Please login to merge, or discard this patch.
Indentation   +102 added lines, -102 removed lines patch added patch discarded remove patch
@@ -15,117 +15,117 @@
 block discarded – undo
15 15
  */
16 16
 class ObjectIdentifier
17 17
 {
18
-    /**
19
-     * used to separate the FQCN from the class's arguments identifier
20
-     */
21
-    const DELIMITER = '____';
18
+	/**
19
+	 * used to separate the FQCN from the class's arguments identifier
20
+	 */
21
+	const DELIMITER = '____';
22 22
 
23
-    /**
24
-     * @var ClassInterfaceCache $class_cache
25
-     */
26
-    private $class_cache;
23
+	/**
24
+	 * @var ClassInterfaceCache $class_cache
25
+	 */
26
+	private $class_cache;
27 27
 
28 28
 
29
-    /**
30
-     * ObjectIdentifier constructor.
31
-     *
32
-     * @param ClassInterfaceCache $class_cache
33
-     */
34
-    public function __construct(ClassInterfaceCache $class_cache)
35
-    {
36
-        $this->class_cache = $class_cache;
37
-    }
29
+	/**
30
+	 * ObjectIdentifier constructor.
31
+	 *
32
+	 * @param ClassInterfaceCache $class_cache
33
+	 */
34
+	public function __construct(ClassInterfaceCache $class_cache)
35
+	{
36
+		$this->class_cache = $class_cache;
37
+	}
38 38
 
39 39
 
40
-    /**
41
-     * Returns true if the supplied $object_identifier contains
42
-     * the delimiter used to separate an fqcn from the arguments hash
43
-     *
44
-     * @param string $object_identifier
45
-     * @return bool
46
-     */
47
-    public function hasArguments($object_identifier)
48
-    {
49
-        // type casting to bool instead of using strpos() !== false
50
-        // because an object identifier should never begin with the delimiter
51
-        // therefore the delimiter should NOT be found at position 0
52
-        return (bool) strpos($object_identifier, ObjectIdentifier::DELIMITER);
53
-    }
40
+	/**
41
+	 * Returns true if the supplied $object_identifier contains
42
+	 * the delimiter used to separate an fqcn from the arguments hash
43
+	 *
44
+	 * @param string $object_identifier
45
+	 * @return bool
46
+	 */
47
+	public function hasArguments($object_identifier)
48
+	{
49
+		// type casting to bool instead of using strpos() !== false
50
+		// because an object identifier should never begin with the delimiter
51
+		// therefore the delimiter should NOT be found at position 0
52
+		return (bool) strpos($object_identifier, ObjectIdentifier::DELIMITER);
53
+	}
54 54
 
55 55
 
56
-    /**
57
-     * Returns true if the supplied FQCN equals the supplied $object_identifier
58
-     * OR the supplied FQCN matches the FQCN portion of the supplied $object_identifier
59
-     * AND that $object_identifier is for an object with arguments.
60
-     * This allows a request for an object using a FQCN to match
61
-     * a previously instantiated object with arguments
62
-     * without having to know those arguments.
63
-     *
64
-     * @param string $fqcn
65
-     * @param string $object_identifier
66
-     * @return bool
67
-     */
68
-    public function fqcnMatchesObjectIdentifier($fqcn, $object_identifier)
69
-    {
70
-        return $fqcn === $object_identifier
71
-               || strpos($object_identifier, $fqcn . ObjectIdentifier::DELIMITER) === 0;
72
-    }
56
+	/**
57
+	 * Returns true if the supplied FQCN equals the supplied $object_identifier
58
+	 * OR the supplied FQCN matches the FQCN portion of the supplied $object_identifier
59
+	 * AND that $object_identifier is for an object with arguments.
60
+	 * This allows a request for an object using a FQCN to match
61
+	 * a previously instantiated object with arguments
62
+	 * without having to know those arguments.
63
+	 *
64
+	 * @param string $fqcn
65
+	 * @param string $object_identifier
66
+	 * @return bool
67
+	 */
68
+	public function fqcnMatchesObjectIdentifier($fqcn, $object_identifier)
69
+	{
70
+		return $fqcn === $object_identifier
71
+			   || strpos($object_identifier, $fqcn . ObjectIdentifier::DELIMITER) === 0;
72
+	}
73 73
 
74 74
 
75
-    /**
76
-     * build a string representation of an object's FQCN and arguments
77
-     *
78
-     * @param string $fqcn
79
-     * @param array  $arguments
80
-     * @return string
81
-     */
82
-    public function getIdentifier($fqcn, array $arguments = array())
83
-    {
84
-        // only build identifier from arguments if class is not ReservedInstanceInterface
85
-        $identifier = ! $this->class_cache->hasInterface(
86
-            $fqcn,
87
-            'EventEspresso\core\interfaces\ReservedInstanceInterface'
88
-        )
89
-            ? $this->getIdentifierForArguments($arguments)
90
-            : '';
91
-        if (! empty($identifier)) {
92
-            $fqcn .= ObjectIdentifier::DELIMITER . md5($identifier);
93
-        }
94
-        return $fqcn;
95
-    }
75
+	/**
76
+	 * build a string representation of an object's FQCN and arguments
77
+	 *
78
+	 * @param string $fqcn
79
+	 * @param array  $arguments
80
+	 * @return string
81
+	 */
82
+	public function getIdentifier($fqcn, array $arguments = array())
83
+	{
84
+		// only build identifier from arguments if class is not ReservedInstanceInterface
85
+		$identifier = ! $this->class_cache->hasInterface(
86
+			$fqcn,
87
+			'EventEspresso\core\interfaces\ReservedInstanceInterface'
88
+		)
89
+			? $this->getIdentifierForArguments($arguments)
90
+			: '';
91
+		if (! empty($identifier)) {
92
+			$fqcn .= ObjectIdentifier::DELIMITER . md5($identifier);
93
+		}
94
+		return $fqcn;
95
+	}
96 96
 
97 97
 
98
-    /**
99
-     * build a string representation of a object's arguments
100
-     * (mostly because Closures can't be serialized)
101
-     *
102
-     * @param array $arguments
103
-     * @return string
104
-     */
105
-    protected function getIdentifierForArguments(array $arguments)
106
-    {
107
-        if (empty($arguments)) {
108
-            return '';
109
-        }
110
-        $identifier = '';
111
-        foreach ($arguments as $key => $argument) {
112
-            // don't include arguments used to assist with loading legacy classes
113
-            if (is_string($key) && strpos($key, 'EE_Registry::create') === 0) {
114
-                continue;
115
-            }
116
-            switch (true) {
117
-                case is_object($argument):
118
-                case $argument instanceof Closure:
119
-                    $identifier .= spl_object_hash($argument);
120
-                    break;
121
-                case is_array($argument):
122
-                    $identifier .= $this->getIdentifierForArguments($argument);
123
-                    break;
124
-                default:
125
-                    $identifier .= $argument;
126
-                    break;
127
-            }
128
-        }
129
-        return $identifier;
130
-    }
98
+	/**
99
+	 * build a string representation of a object's arguments
100
+	 * (mostly because Closures can't be serialized)
101
+	 *
102
+	 * @param array $arguments
103
+	 * @return string
104
+	 */
105
+	protected function getIdentifierForArguments(array $arguments)
106
+	{
107
+		if (empty($arguments)) {
108
+			return '';
109
+		}
110
+		$identifier = '';
111
+		foreach ($arguments as $key => $argument) {
112
+			// don't include arguments used to assist with loading legacy classes
113
+			if (is_string($key) && strpos($key, 'EE_Registry::create') === 0) {
114
+				continue;
115
+			}
116
+			switch (true) {
117
+				case is_object($argument):
118
+				case $argument instanceof Closure:
119
+					$identifier .= spl_object_hash($argument);
120
+					break;
121
+				case is_array($argument):
122
+					$identifier .= $this->getIdentifierForArguments($argument);
123
+					break;
124
+				default:
125
+					$identifier .= $argument;
126
+					break;
127
+			}
128
+		}
129
+		return $identifier;
130
+	}
131 131
 }
Please login to merge, or discard this patch.
core/domain/services/custom_post_types/RegisterCustomPostTypes.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -61,7 +61,7 @@
 block discarded – undo
61 61
     {
62 62
         $custom_post_types = $this->custom_post_types->getDefinitions();
63 63
         foreach ($custom_post_types as $custom_post_type => $CPT) {
64
-            $this->wp_post_types[ $custom_post_type ] = $this->registerCustomPostType(
64
+            $this->wp_post_types[$custom_post_type] = $this->registerCustomPostType(
65 65
                 $custom_post_type,
66 66
                 $CPT['singular_name'],
67 67
                 $CPT['plural_name'],
Please login to merge, or discard this patch.
Indentation   +295 added lines, -295 removed lines patch added patch discarded remove patch
@@ -17,314 +17,314 @@
 block discarded – undo
17 17
  */
18 18
 class RegisterCustomPostTypes
19 19
 {
20
-    /**
21
-     * @var CustomPostTypeDefinitions $custom_post_types
22
-     */
23
-    public $custom_post_types;
20
+	/**
21
+	 * @var CustomPostTypeDefinitions $custom_post_types
22
+	 */
23
+	public $custom_post_types;
24 24
 
25
-    /**
26
-     * @var WP_Post_Type[] $wp_post_types
27
-     */
28
-    public $wp_post_types = array();
25
+	/**
26
+	 * @var WP_Post_Type[] $wp_post_types
27
+	 */
28
+	public $wp_post_types = array();
29 29
 
30 30
 
31
-    /**
32
-     * RegisterCustomPostTypes constructor.
33
-     *
34
-     * @param CustomPostTypeDefinitions $custom_post_types
35
-     */
36
-    public function __construct(CustomPostTypeDefinitions $custom_post_types)
37
-    {
38
-        $this->custom_post_types = $custom_post_types;
39
-    }
31
+	/**
32
+	 * RegisterCustomPostTypes constructor.
33
+	 *
34
+	 * @param CustomPostTypeDefinitions $custom_post_types
35
+	 */
36
+	public function __construct(CustomPostTypeDefinitions $custom_post_types)
37
+	{
38
+		$this->custom_post_types = $custom_post_types;
39
+	}
40 40
 
41 41
 
42
-    /**
43
-     * @return WP_Post_Type[]
44
-     */
45
-    public function getRegisteredCustomPostTypes()
46
-    {
47
-        return $this->wp_post_types;
48
-    }
42
+	/**
43
+	 * @return WP_Post_Type[]
44
+	 */
45
+	public function getRegisteredCustomPostTypes()
46
+	{
47
+		return $this->wp_post_types;
48
+	}
49 49
 
50 50
 
51
-    /**
52
-     * @return void
53
-     * @throws DomainException
54
-     */
55
-    public function registerCustomPostTypes()
56
-    {
57
-        $custom_post_types = $this->custom_post_types->getDefinitions();
58
-        foreach ($custom_post_types as $custom_post_type => $CPT) {
59
-            $this->wp_post_types[ $custom_post_type ] = $this->registerCustomPostType(
60
-                $custom_post_type,
61
-                $CPT['singular_name'],
62
-                $CPT['plural_name'],
63
-                $CPT['singular_slug'],
64
-                $CPT['plural_slug'],
65
-                $CPT['args']
66
-            );
67
-        }
68
-    }
51
+	/**
52
+	 * @return void
53
+	 * @throws DomainException
54
+	 */
55
+	public function registerCustomPostTypes()
56
+	{
57
+		$custom_post_types = $this->custom_post_types->getDefinitions();
58
+		foreach ($custom_post_types as $custom_post_type => $CPT) {
59
+			$this->wp_post_types[ $custom_post_type ] = $this->registerCustomPostType(
60
+				$custom_post_type,
61
+				$CPT['singular_name'],
62
+				$CPT['plural_name'],
63
+				$CPT['singular_slug'],
64
+				$CPT['plural_slug'],
65
+				$CPT['args']
66
+			);
67
+		}
68
+	}
69 69
 
70 70
 
71
-    /**
72
-     * Registers a new custom post type. Sets default settings given only the following params.
73
-     * Returns the registered post type object, or an error object.
74
-     *
75
-     * @param string $post_type          the actual post type name
76
-     *                                   IMPORTANT:
77
-     *                                   this must match what the slug is for admin pages related to this CPT
78
-     *                                   Also any models must use this slug as well
79
-     * @param string $singular_name      a pre-internationalized string for the singular name of the objects
80
-     * @param string $plural_name        a pre-internationalized string for the plural name of the objects
81
-     * @param string $singular_slug
82
-     * @param string $plural_slug
83
-     * @param array  $override_arguments exactly like $args as described in
84
-     *                                   http://codex.wordpress.org/Function_Reference/register_post_type
85
-     * @return WP_Post_Type|WP_Error
86
-     * @throws DomainException
87
-     */
88
-    public function registerCustomPostType(
89
-        $post_type,
90
-        $singular_name,
91
-        $plural_name,
92
-        $singular_slug = '',
93
-        $plural_slug = '',
94
-        array $override_arguments = array()
95
-    ) {
96
-        $wp_post_type = register_post_type(
97
-            $post_type,
98
-            $this->prepareArguments(
99
-                $post_type,
100
-                $singular_name,
101
-                $plural_name,
102
-                $singular_slug,
103
-                $plural_slug,
104
-                $override_arguments
105
-            )
106
-        );
107
-        if ($wp_post_type instanceof WP_Error) {
108
-            throw new DomainException($wp_post_type->get_error_message());
109
-        }
110
-        return $wp_post_type;
111
-    }
71
+	/**
72
+	 * Registers a new custom post type. Sets default settings given only the following params.
73
+	 * Returns the registered post type object, or an error object.
74
+	 *
75
+	 * @param string $post_type          the actual post type name
76
+	 *                                   IMPORTANT:
77
+	 *                                   this must match what the slug is for admin pages related to this CPT
78
+	 *                                   Also any models must use this slug as well
79
+	 * @param string $singular_name      a pre-internationalized string for the singular name of the objects
80
+	 * @param string $plural_name        a pre-internationalized string for the plural name of the objects
81
+	 * @param string $singular_slug
82
+	 * @param string $plural_slug
83
+	 * @param array  $override_arguments exactly like $args as described in
84
+	 *                                   http://codex.wordpress.org/Function_Reference/register_post_type
85
+	 * @return WP_Post_Type|WP_Error
86
+	 * @throws DomainException
87
+	 */
88
+	public function registerCustomPostType(
89
+		$post_type,
90
+		$singular_name,
91
+		$plural_name,
92
+		$singular_slug = '',
93
+		$plural_slug = '',
94
+		array $override_arguments = array()
95
+	) {
96
+		$wp_post_type = register_post_type(
97
+			$post_type,
98
+			$this->prepareArguments(
99
+				$post_type,
100
+				$singular_name,
101
+				$plural_name,
102
+				$singular_slug,
103
+				$plural_slug,
104
+				$override_arguments
105
+			)
106
+		);
107
+		if ($wp_post_type instanceof WP_Error) {
108
+			throw new DomainException($wp_post_type->get_error_message());
109
+		}
110
+		return $wp_post_type;
111
+	}
112 112
 
113 113
 
114
-    /**
115
-     * @param string $post_type          the actual post type name
116
-     * @param string $singular_name      a pre-internationalized string for the singular name of the objects
117
-     * @param string $plural_name        a pre-internationalized string for the plural name of the objects
118
-     * @param string $singular_slug
119
-     * @param string $plural_slug
120
-     * @param array  $override_arguments The default values set in this function will be overridden
121
-     *                                   by whatever you set in $override_arguments
122
-     * @return array
123
-     */
124
-    protected function prepareArguments(
125
-        $post_type,
126
-        $singular_name,
127
-        $plural_name,
128
-        $singular_slug,
129
-        $plural_slug,
130
-        array $override_arguments = array()
131
-    ) {
132
-        // verify plural slug and singular slug, if they aren't we'll use $singular_name and $plural_name
133
-        $singular_slug = ! empty($singular_slug) ? $singular_slug : $singular_name;
134
-        $plural_slug = ! empty($plural_slug) ? $plural_slug : $plural_name;
135
-        $labels = $this->getLabels(
136
-            $singular_name,
137
-            $plural_name,
138
-            $singular_slug,
139
-            $plural_slug
140
-        );
141
-        // note the page_templates arg in the supports index is something specific to EE.
142
-        // WordPress doesn't actually have that in their register_post_type api.
143
-        $arguments = $this->getDefaultArguments($labels, $post_type, $plural_slug);
144
-        if ($override_arguments) {
145
-            if (isset($override_arguments['labels'])) {
146
-                $labels = array_merge($arguments['labels'], $override_arguments['labels']);
147
-            }
148
-            $arguments = array_merge($arguments, $override_arguments);
149
-            $arguments['labels'] = $labels;
150
-        }
151
-        return $arguments;
152
-    }
114
+	/**
115
+	 * @param string $post_type          the actual post type name
116
+	 * @param string $singular_name      a pre-internationalized string for the singular name of the objects
117
+	 * @param string $plural_name        a pre-internationalized string for the plural name of the objects
118
+	 * @param string $singular_slug
119
+	 * @param string $plural_slug
120
+	 * @param array  $override_arguments The default values set in this function will be overridden
121
+	 *                                   by whatever you set in $override_arguments
122
+	 * @return array
123
+	 */
124
+	protected function prepareArguments(
125
+		$post_type,
126
+		$singular_name,
127
+		$plural_name,
128
+		$singular_slug,
129
+		$plural_slug,
130
+		array $override_arguments = array()
131
+	) {
132
+		// verify plural slug and singular slug, if they aren't we'll use $singular_name and $plural_name
133
+		$singular_slug = ! empty($singular_slug) ? $singular_slug : $singular_name;
134
+		$plural_slug = ! empty($plural_slug) ? $plural_slug : $plural_name;
135
+		$labels = $this->getLabels(
136
+			$singular_name,
137
+			$plural_name,
138
+			$singular_slug,
139
+			$plural_slug
140
+		);
141
+		// note the page_templates arg in the supports index is something specific to EE.
142
+		// WordPress doesn't actually have that in their register_post_type api.
143
+		$arguments = $this->getDefaultArguments($labels, $post_type, $plural_slug);
144
+		if ($override_arguments) {
145
+			if (isset($override_arguments['labels'])) {
146
+				$labels = array_merge($arguments['labels'], $override_arguments['labels']);
147
+			}
148
+			$arguments = array_merge($arguments, $override_arguments);
149
+			$arguments['labels'] = $labels;
150
+		}
151
+		return $arguments;
152
+	}
153 153
 
154 154
 
155
-    /**
156
-     * @param string $singular_name
157
-     * @param string $plural_name
158
-     * @param string $singular_slug
159
-     * @param string $plural_slug
160
-     * @return array
161
-     */
162
-    private function getLabels($singular_name, $plural_name, $singular_slug, $plural_slug)
163
-    {
164
-        return array(
165
-            'name'                     => $plural_name,
166
-            'singular_name'            => $singular_name,
167
-            'singular_slug'            => $singular_slug,
168
-            'plural_slug'              => $plural_slug,
169
-            'add_new'                  => sprintf(
170
-                /* Translators: Post Type Label */
171
-                esc_html_x('Add %s', 'Add Event', 'event_espresso'),
172
-                $singular_name
173
-            ),
174
-            'add_new_item'             => sprintf(
175
-                /* Translators: Post Type Label */
176
-                esc_html_x('Add New %s', 'Add New Event', 'event_espresso'),
177
-                $singular_name
178
-            ),
179
-            'edit_item'                => sprintf(
180
-                /* Translators: Post Type Label */
181
-                esc_html_x('Edit %s', 'Edit Event', 'event_espresso'),
182
-                $singular_name
183
-            ),
184
-            'new_item'                 => sprintf(
185
-                /* Translators: Post Type Label */
186
-                esc_html_x('New %s', 'New Event', 'event_espresso'),
187
-                $singular_name
188
-            ),
189
-            'all_items'                => sprintf(
190
-                /* Translators: Post Type Label */
191
-                esc_html_x('All %s', 'All Events', 'event_espresso'),
192
-                $plural_name
193
-            ),
194
-            'view_item'                => sprintf(
195
-                /* Translators: Post Type Label */
196
-                esc_html_x('View %s', 'View Event', 'event_espresso'),
197
-                $singular_name
198
-            ),
199
-            'view_items'               => sprintf(
200
-                /* Translators: Post Type Label */
201
-                esc_html_x('View %s', 'View Events', 'event_espresso'),
202
-                $plural_name
203
-            ),
204
-            'archives'                 => sprintf(
205
-                /* Translators: Post Type Label */
206
-                esc_html_x('%s Archives', 'Event Archives', 'event_espresso'),
207
-                $singular_name
208
-            ),
209
-            'attributes'               => sprintf(
210
-                /* Translators: Post Type Label */
211
-                esc_html_x('%s Attributes', 'Event Attributes', 'event_espresso'),
212
-                $singular_name
213
-            ),
214
-            'insert_into_item'         => sprintf(
215
-                /* Translators: Post Type Label */
216
-                esc_html_x('Insert into this %s', 'Insert into this Event', 'event_espresso'),
217
-                $singular_name
218
-            ),
219
-            'uploaded_to_this_item'    => sprintf(
220
-                /* Translators: Post Type Label */
221
-                esc_html_x('Uploaded to this %s', 'Uploaded to this Event', 'event_espresso'),
222
-                $singular_name
223
-            ),
224
-            'filter_items_list'        => sprintf(
225
-                /* Translators: Post Type Label */
226
-                esc_html_x('Filter %s list', 'Filter Events list', 'event_espresso'),
227
-                $plural_name
228
-            ),
229
-            'items_list_navigation'    => sprintf(
230
-                /* Translators: Post Type Label */
231
-                esc_html_x('%s list navigation', 'Events list navigation', 'event_espresso'),
232
-                $plural_name
233
-            ),
234
-            'items_list'               => sprintf(
235
-                /* Translators: Post Type Label */
236
-                esc_html_x('%s list', 'Events list', 'event_espresso'),
237
-                $plural_name
238
-            ),
239
-            'item_published'           => sprintf(
240
-                /* Translators: Post Type Label */
241
-                esc_html_x('%s published', 'Event published', 'event_espresso'),
242
-                $singular_name
243
-            ),
244
-            'item_published_privately' => sprintf(
245
-                /* Translators: Post Type Label */
246
-                esc_html_x('%s published privately', 'Event published privately', 'event_espresso'),
247
-                $singular_name
248
-            ),
249
-            'item_reverted_to_draft'   => sprintf(
250
-                /* Translators: Post Type Label */
251
-                esc_html_x('%s reverted to draft', 'Event reverted to draft', 'event_espresso'),
252
-                $singular_name
253
-            ),
254
-            'item_scheduled'           => sprintf(
255
-                /* Translators: Post Type Label */
256
-                esc_html_x('%s scheduled', 'Event scheduled', 'event_espresso'),
257
-                $singular_name
258
-            ),
259
-            'item_updated'             => sprintf(
260
-                /* Translators: Post Type Label */
261
-                esc_html_x('%s updated', 'Event updated', 'event_espresso'),
262
-                $singular_name
263
-            ),
264
-            'search_items'             => sprintf(
265
-                /* Translators: Post Type Label */
266
-                esc_html_x('Search %s', 'Search Events', 'event_espresso'),
267
-                $plural_name
268
-            ),
269
-            'not_found'                => sprintf(
270
-                /* Translators: Post Type Label */
271
-                esc_html_x('No %s found', 'No Events found', 'event_espresso'),
272
-                $plural_name
273
-            ),
274
-            'not_found_in_trash'       => sprintf(
275
-                /* Translators: Post Type Label */
276
-                esc_html_x('No %s found in Trash', 'No Events found in Trash', 'event_espresso'),
277
-                $plural_name
278
-            ),
279
-            'parent_item_colon'        => '',
280
-            'menu_name'                => $plural_name,
281
-        );
282
-    }
155
+	/**
156
+	 * @param string $singular_name
157
+	 * @param string $plural_name
158
+	 * @param string $singular_slug
159
+	 * @param string $plural_slug
160
+	 * @return array
161
+	 */
162
+	private function getLabels($singular_name, $plural_name, $singular_slug, $plural_slug)
163
+	{
164
+		return array(
165
+			'name'                     => $plural_name,
166
+			'singular_name'            => $singular_name,
167
+			'singular_slug'            => $singular_slug,
168
+			'plural_slug'              => $plural_slug,
169
+			'add_new'                  => sprintf(
170
+				/* Translators: Post Type Label */
171
+				esc_html_x('Add %s', 'Add Event', 'event_espresso'),
172
+				$singular_name
173
+			),
174
+			'add_new_item'             => sprintf(
175
+				/* Translators: Post Type Label */
176
+				esc_html_x('Add New %s', 'Add New Event', 'event_espresso'),
177
+				$singular_name
178
+			),
179
+			'edit_item'                => sprintf(
180
+				/* Translators: Post Type Label */
181
+				esc_html_x('Edit %s', 'Edit Event', 'event_espresso'),
182
+				$singular_name
183
+			),
184
+			'new_item'                 => sprintf(
185
+				/* Translators: Post Type Label */
186
+				esc_html_x('New %s', 'New Event', 'event_espresso'),
187
+				$singular_name
188
+			),
189
+			'all_items'                => sprintf(
190
+				/* Translators: Post Type Label */
191
+				esc_html_x('All %s', 'All Events', 'event_espresso'),
192
+				$plural_name
193
+			),
194
+			'view_item'                => sprintf(
195
+				/* Translators: Post Type Label */
196
+				esc_html_x('View %s', 'View Event', 'event_espresso'),
197
+				$singular_name
198
+			),
199
+			'view_items'               => sprintf(
200
+				/* Translators: Post Type Label */
201
+				esc_html_x('View %s', 'View Events', 'event_espresso'),
202
+				$plural_name
203
+			),
204
+			'archives'                 => sprintf(
205
+				/* Translators: Post Type Label */
206
+				esc_html_x('%s Archives', 'Event Archives', 'event_espresso'),
207
+				$singular_name
208
+			),
209
+			'attributes'               => sprintf(
210
+				/* Translators: Post Type Label */
211
+				esc_html_x('%s Attributes', 'Event Attributes', 'event_espresso'),
212
+				$singular_name
213
+			),
214
+			'insert_into_item'         => sprintf(
215
+				/* Translators: Post Type Label */
216
+				esc_html_x('Insert into this %s', 'Insert into this Event', 'event_espresso'),
217
+				$singular_name
218
+			),
219
+			'uploaded_to_this_item'    => sprintf(
220
+				/* Translators: Post Type Label */
221
+				esc_html_x('Uploaded to this %s', 'Uploaded to this Event', 'event_espresso'),
222
+				$singular_name
223
+			),
224
+			'filter_items_list'        => sprintf(
225
+				/* Translators: Post Type Label */
226
+				esc_html_x('Filter %s list', 'Filter Events list', 'event_espresso'),
227
+				$plural_name
228
+			),
229
+			'items_list_navigation'    => sprintf(
230
+				/* Translators: Post Type Label */
231
+				esc_html_x('%s list navigation', 'Events list navigation', 'event_espresso'),
232
+				$plural_name
233
+			),
234
+			'items_list'               => sprintf(
235
+				/* Translators: Post Type Label */
236
+				esc_html_x('%s list', 'Events list', 'event_espresso'),
237
+				$plural_name
238
+			),
239
+			'item_published'           => sprintf(
240
+				/* Translators: Post Type Label */
241
+				esc_html_x('%s published', 'Event published', 'event_espresso'),
242
+				$singular_name
243
+			),
244
+			'item_published_privately' => sprintf(
245
+				/* Translators: Post Type Label */
246
+				esc_html_x('%s published privately', 'Event published privately', 'event_espresso'),
247
+				$singular_name
248
+			),
249
+			'item_reverted_to_draft'   => sprintf(
250
+				/* Translators: Post Type Label */
251
+				esc_html_x('%s reverted to draft', 'Event reverted to draft', 'event_espresso'),
252
+				$singular_name
253
+			),
254
+			'item_scheduled'           => sprintf(
255
+				/* Translators: Post Type Label */
256
+				esc_html_x('%s scheduled', 'Event scheduled', 'event_espresso'),
257
+				$singular_name
258
+			),
259
+			'item_updated'             => sprintf(
260
+				/* Translators: Post Type Label */
261
+				esc_html_x('%s updated', 'Event updated', 'event_espresso'),
262
+				$singular_name
263
+			),
264
+			'search_items'             => sprintf(
265
+				/* Translators: Post Type Label */
266
+				esc_html_x('Search %s', 'Search Events', 'event_espresso'),
267
+				$plural_name
268
+			),
269
+			'not_found'                => sprintf(
270
+				/* Translators: Post Type Label */
271
+				esc_html_x('No %s found', 'No Events found', 'event_espresso'),
272
+				$plural_name
273
+			),
274
+			'not_found_in_trash'       => sprintf(
275
+				/* Translators: Post Type Label */
276
+				esc_html_x('No %s found in Trash', 'No Events found in Trash', 'event_espresso'),
277
+				$plural_name
278
+			),
279
+			'parent_item_colon'        => '',
280
+			'menu_name'                => $plural_name,
281
+		);
282
+	}
283 283
 
284 284
 
285
-    /**
286
-     * @param array  $labels
287
-     * @param string $post_type
288
-     * @param string $plural_slug
289
-     * @return array
290
-     */
291
-    private function getDefaultArguments(array $labels, $post_type, $plural_slug)
292
-    {
293
-        return array(
294
-            'labels'             => $labels,
295
-            'public'             => true,
296
-            'publicly_queryable' => true,
297
-            'show_ui'            => false,
298
-            'show_ee_ui'         => true,
299
-            'show_in_menu'       => false,
300
-            'show_in_nav_menus'  => false,
301
-            'query_var'          => true,
302
-            'rewrite'            => apply_filters(
303
-                'FHEE__EventEspresso_core_domain_entities_custom_post_types_RegisterCustomPostTypes__getDefaultArguments__rewrite',
304
-                // legacy filter applied for now,
305
-                // later on we'll run a has_filter($tag) check and throw a doing_it_wrong() notice
306
-                apply_filters(
307
-                    'FHEE__EE_Register_CPTs__register_CPT__rewrite',
308
-                    array('slug' => $plural_slug),
309
-                    $post_type
310
-                ),
311
-                $post_type,
312
-                $plural_slug
313
-            ),
314
-            'capability_type'    => 'post',
315
-            'map_meta_cap'       => true,
316
-            'has_archive'        => true,
317
-            'hierarchical'       => false,
318
-            'menu_position'      => null,
319
-            'supports'           => array(
320
-                'title',
321
-                'editor',
322
-                'author',
323
-                'thumbnail',
324
-                'excerpt',
325
-                'custom-fields',
326
-                'comments',
327
-            ),
328
-        );
329
-    }
285
+	/**
286
+	 * @param array  $labels
287
+	 * @param string $post_type
288
+	 * @param string $plural_slug
289
+	 * @return array
290
+	 */
291
+	private function getDefaultArguments(array $labels, $post_type, $plural_slug)
292
+	{
293
+		return array(
294
+			'labels'             => $labels,
295
+			'public'             => true,
296
+			'publicly_queryable' => true,
297
+			'show_ui'            => false,
298
+			'show_ee_ui'         => true,
299
+			'show_in_menu'       => false,
300
+			'show_in_nav_menus'  => false,
301
+			'query_var'          => true,
302
+			'rewrite'            => apply_filters(
303
+				'FHEE__EventEspresso_core_domain_entities_custom_post_types_RegisterCustomPostTypes__getDefaultArguments__rewrite',
304
+				// legacy filter applied for now,
305
+				// later on we'll run a has_filter($tag) check and throw a doing_it_wrong() notice
306
+				apply_filters(
307
+					'FHEE__EE_Register_CPTs__register_CPT__rewrite',
308
+					array('slug' => $plural_slug),
309
+					$post_type
310
+				),
311
+				$post_type,
312
+				$plural_slug
313
+			),
314
+			'capability_type'    => 'post',
315
+			'map_meta_cap'       => true,
316
+			'has_archive'        => true,
317
+			'hierarchical'       => false,
318
+			'menu_position'      => null,
319
+			'supports'           => array(
320
+				'title',
321
+				'editor',
322
+				'author',
323
+				'thumbnail',
324
+				'excerpt',
325
+				'custom-fields',
326
+				'comments',
327
+			),
328
+		);
329
+	}
330 330
 }
Please login to merge, or discard this patch.
core/domain/DomainBase.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -136,7 +136,7 @@  discard block
 block discarded – undo
136 136
      */
137 137
     public function distributionAssetsPath()
138 138
     {
139
-        return $this->pluginPath() . 'assets/dist/';
139
+        return $this->pluginPath().'assets/dist/';
140 140
     }
141 141
 
142 142
 
@@ -145,7 +145,7 @@  discard block
 block discarded – undo
145 145
      */
146 146
     public function distributionAssetsUrl()
147 147
     {
148
-        return $this->pluginUrl() . 'assets/dist/';
148
+        return $this->pluginUrl().'assets/dist/';
149 149
     }
150 150
 
151 151
 
Please login to merge, or discard this patch.
Indentation   +149 added lines, -149 removed lines patch added patch discarded remove patch
@@ -16,153 +16,153 @@
 block discarded – undo
16 16
  */
17 17
 abstract class DomainBase implements DomainInterface
18 18
 {
19
-    /**
20
-     * Equivalent to `__FILE__` for main plugin file.
21
-     *
22
-     * @var FilePath
23
-     */
24
-    private $plugin_file;
25
-
26
-    /**
27
-     * String indicating version for plugin
28
-     *
29
-     * @var string
30
-     */
31
-    private $version;
32
-
33
-    /**
34
-     * @var string $plugin_basename
35
-     */
36
-    private $plugin_basename;
37
-
38
-    /**
39
-     * @var string $plugin_path
40
-     */
41
-    private $plugin_path;
42
-
43
-    /**
44
-     * @var string $plugin_url
45
-     */
46
-    private $plugin_url;
47
-
48
-    /**
49
-     * @var string $asset_namespace
50
-     */
51
-    private $asset_namespace;
52
-
53
-
54
-
55
-    /**
56
-     * Initializes internal properties.
57
-     *
58
-     * @param FilePath $plugin_file
59
-     * @param Version  $version
60
-     */
61
-    public function __construct(FilePath $plugin_file, Version $version)
62
-    {
63
-        $this->plugin_file = $plugin_file;
64
-        $this->version = $version;
65
-        $this->plugin_basename = plugin_basename($this->pluginFile());
66
-        $this->plugin_path = plugin_dir_path($this->pluginFile());
67
-        $this->plugin_url = plugin_dir_url($this->pluginFile());
68
-        $this->setAssetNamespace();
69
-    }
70
-
71
-
72
-    /**
73
-     * @return string
74
-     */
75
-    public function pluginFile()
76
-    {
77
-        return (string) $this->plugin_file;
78
-    }
79
-
80
-
81
-
82
-    /**
83
-     * @return string
84
-     */
85
-    public function pluginBasename()
86
-    {
87
-        return $this->plugin_basename;
88
-    }
89
-
90
-
91
-
92
-    /**
93
-     * @return string
94
-     */
95
-    public function pluginPath()
96
-    {
97
-        return $this->plugin_path;
98
-    }
99
-
100
-
101
-
102
-    /**
103
-     * @return string
104
-     */
105
-    public function pluginUrl()
106
-    {
107
-        return $this->plugin_url;
108
-    }
109
-
110
-
111
-
112
-    /**
113
-     * @return string
114
-     */
115
-    public function version()
116
-    {
117
-        return (string) $this->version;
118
-    }
119
-
120
-
121
-
122
-    /**
123
-     * @return Version
124
-     */
125
-    public function versionValueObject()
126
-    {
127
-        return $this->version;
128
-    }
129
-
130
-
131
-    /**
132
-     * @return string
133
-     */
134
-    public function distributionAssetsPath()
135
-    {
136
-        return $this->pluginPath() . 'assets/dist/';
137
-    }
138
-
139
-
140
-    /**
141
-     * @return string
142
-     */
143
-    public function distributionAssetsUrl()
144
-    {
145
-        return $this->pluginUrl() . 'assets/dist/';
146
-    }
147
-
148
-
149
-    /**
150
-     * @return string
151
-     */
152
-    public function assetNamespace()
153
-    {
154
-        return $this->asset_namespace;
155
-    }
156
-
157
-
158
-    /**
159
-     * @return void
160
-     */
161
-    private function setAssetNamespace()
162
-    {
163
-        $this->asset_namespace = sanitize_key(
164
-            // convert directory separators to dashes and remove file extension
165
-            str_replace(array('/', '.php'), array('-', ''), $this->plugin_basename)
166
-        );
167
-    }
19
+	/**
20
+	 * Equivalent to `__FILE__` for main plugin file.
21
+	 *
22
+	 * @var FilePath
23
+	 */
24
+	private $plugin_file;
25
+
26
+	/**
27
+	 * String indicating version for plugin
28
+	 *
29
+	 * @var string
30
+	 */
31
+	private $version;
32
+
33
+	/**
34
+	 * @var string $plugin_basename
35
+	 */
36
+	private $plugin_basename;
37
+
38
+	/**
39
+	 * @var string $plugin_path
40
+	 */
41
+	private $plugin_path;
42
+
43
+	/**
44
+	 * @var string $plugin_url
45
+	 */
46
+	private $plugin_url;
47
+
48
+	/**
49
+	 * @var string $asset_namespace
50
+	 */
51
+	private $asset_namespace;
52
+
53
+
54
+
55
+	/**
56
+	 * Initializes internal properties.
57
+	 *
58
+	 * @param FilePath $plugin_file
59
+	 * @param Version  $version
60
+	 */
61
+	public function __construct(FilePath $plugin_file, Version $version)
62
+	{
63
+		$this->plugin_file = $plugin_file;
64
+		$this->version = $version;
65
+		$this->plugin_basename = plugin_basename($this->pluginFile());
66
+		$this->plugin_path = plugin_dir_path($this->pluginFile());
67
+		$this->plugin_url = plugin_dir_url($this->pluginFile());
68
+		$this->setAssetNamespace();
69
+	}
70
+
71
+
72
+	/**
73
+	 * @return string
74
+	 */
75
+	public function pluginFile()
76
+	{
77
+		return (string) $this->plugin_file;
78
+	}
79
+
80
+
81
+
82
+	/**
83
+	 * @return string
84
+	 */
85
+	public function pluginBasename()
86
+	{
87
+		return $this->plugin_basename;
88
+	}
89
+
90
+
91
+
92
+	/**
93
+	 * @return string
94
+	 */
95
+	public function pluginPath()
96
+	{
97
+		return $this->plugin_path;
98
+	}
99
+
100
+
101
+
102
+	/**
103
+	 * @return string
104
+	 */
105
+	public function pluginUrl()
106
+	{
107
+		return $this->plugin_url;
108
+	}
109
+
110
+
111
+
112
+	/**
113
+	 * @return string
114
+	 */
115
+	public function version()
116
+	{
117
+		return (string) $this->version;
118
+	}
119
+
120
+
121
+
122
+	/**
123
+	 * @return Version
124
+	 */
125
+	public function versionValueObject()
126
+	{
127
+		return $this->version;
128
+	}
129
+
130
+
131
+	/**
132
+	 * @return string
133
+	 */
134
+	public function distributionAssetsPath()
135
+	{
136
+		return $this->pluginPath() . 'assets/dist/';
137
+	}
138
+
139
+
140
+	/**
141
+	 * @return string
142
+	 */
143
+	public function distributionAssetsUrl()
144
+	{
145
+		return $this->pluginUrl() . 'assets/dist/';
146
+	}
147
+
148
+
149
+	/**
150
+	 * @return string
151
+	 */
152
+	public function assetNamespace()
153
+	{
154
+		return $this->asset_namespace;
155
+	}
156
+
157
+
158
+	/**
159
+	 * @return void
160
+	 */
161
+	private function setAssetNamespace()
162
+	{
163
+		$this->asset_namespace = sanitize_key(
164
+			// convert directory separators to dashes and remove file extension
165
+			str_replace(array('/', '.php'), array('-', ''), $this->plugin_basename)
166
+		);
167
+	}
168 168
 }
Please login to merge, or discard this patch.
core/domain/values/assets/ManifestFile.php 1 patch
Indentation   +22 added lines, -22 removed lines patch added patch discarded remove patch
@@ -16,26 +16,26 @@
 block discarded – undo
16 16
 class ManifestFile extends Asset
17 17
 {
18 18
 
19
-    /**
20
-     * Asset constructor.
21
-     *
22
-     * @param DomainInterface $domain
23
-     * @throws InvalidDataTypeException
24
-     */
25
-    public function __construct(DomainInterface $domain)
26
-    {
27
-        parent::__construct(Asset::TYPE_MANIFEST, $domain->assetNamespace(), $domain);
28
-    }
29
-
30
-
31
-    public function urlBase()
32
-    {
33
-        return $this->domain->distributionAssetsUrl();
34
-    }
35
-
36
-
37
-    public function filepath()
38
-    {
39
-        return $this->domain->distributionAssetsPath();
40
-    }
19
+	/**
20
+	 * Asset constructor.
21
+	 *
22
+	 * @param DomainInterface $domain
23
+	 * @throws InvalidDataTypeException
24
+	 */
25
+	public function __construct(DomainInterface $domain)
26
+	{
27
+		parent::__construct(Asset::TYPE_MANIFEST, $domain->assetNamespace(), $domain);
28
+	}
29
+
30
+
31
+	public function urlBase()
32
+	{
33
+		return $this->domain->distributionAssetsUrl();
34
+	}
35
+
36
+
37
+	public function filepath()
38
+	{
39
+		return $this->domain->distributionAssetsPath();
40
+	}
41 41
 }
Please login to merge, or discard this patch.
core/domain/values/assets/Asset.php 2 patches
Spacing   +2 added lines, -2 removed lines patch added patch discarded remove patch
@@ -82,7 +82,7 @@  discard block
 block discarded – undo
82 82
      */
83 83
     private function setType($type)
84 84
     {
85
-        if (! in_array($type, $this->validAssetTypes(), true)) {
85
+        if ( ! in_array($type, $this->validAssetTypes(), true)) {
86 86
             throw new InvalidDataTypeException(
87 87
                 'Asset::$type',
88 88
                 $type,
@@ -99,7 +99,7 @@  discard block
 block discarded – undo
99 99
      */
100 100
     private function setHandle($handle)
101 101
     {
102
-        if (! is_string($handle)) {
102
+        if ( ! is_string($handle)) {
103 103
             throw new InvalidDataTypeException(
104 104
                 '$handle',
105 105
                 $handle,
Please login to merge, or discard this patch.
Indentation   +179 added lines, -179 removed lines patch added patch discarded remove patch
@@ -15,183 +15,183 @@
 block discarded – undo
15 15
  */
16 16
 abstract class Asset
17 17
 {
18
-    /**
19
-     * indicates the file extension for a CSS file
20
-     */
21
-    const EXT_CSS = '.css';
22
-
23
-    /**
24
-     * indicates the file extension for a JS file
25
-     */
26
-    const EXT_JS = '.js';
27
-
28
-    /**
29
-     * indicates the file extension for a JS file
30
-     */
31
-    const EXT_PHP = '.php';
32
-
33
-    /**
34
-     * indicates the file extension for a build distribution CSS file
35
-     */
36
-    const FILE_EXTENSION_DISTRIBUTION_CSS = '.dist.css';
37
-
38
-    /**
39
-     * indicates the file extension for a build distribution JS file
40
-     */
41
-    const FILE_EXTENSION_DISTRIBUTION_JS = '.dist.js';
42
-
43
-    /**
44
-     * Indicates the file extension for a build distribution dependencies json file.
45
-     */
46
-    const FILE_EXTENSION_DISTRIBUTION_DEPS = '.dist.deps.php';
47
-
48
-    /**
49
-     * indicates a Cascading Style Sheet asset
50
-     */
51
-    const TYPE_CSS = 'css';
52
-
53
-    /**
54
-     * indicates a Javascript asset
55
-     */
56
-    const TYPE_JS = 'js';
57
-
58
-    /**
59
-     * indicates a JSON asset
60
-     */
61
-    CONST TYPE_JSON = 'json';
62
-    /**
63
-     * indicates a PHP asset
64
-     */
65
-    CONST TYPE_PHP = 'php';
66
-
67
-    /**
68
-     * indicates a Javascript manifest file
69
-     */
70
-    const TYPE_MANIFEST = 'manifest';
71
-
72
-    /**
73
-     * @var DomainInterface $domain
74
-     */
75
-    protected $domain;
76
-
77
-    /**
78
-     * @var string $type
79
-     */
80
-    private $type;
81
-
82
-    /**
83
-     * @var string $handle
84
-     */
85
-    private $handle;
86
-
87
-    /**
88
-     * @var bool $registered
89
-     */
90
-    private $registered = false;
91
-
92
-
93
-    /**
94
-     * Asset constructor.
95
-     *
96
-     * @param                 $type
97
-     * @param string          $handle
98
-     * @param DomainInterface $domain
99
-     * @throws InvalidDataTypeException
100
-     */
101
-    public function __construct($type, $handle, DomainInterface $domain)
102
-    {
103
-        $this->domain = $domain;
104
-        $this->setType($type);
105
-        $this->setHandle($handle);
106
-    }
107
-
108
-
109
-    /**
110
-     * @return array
111
-     */
112
-    public function validAssetTypes()
113
-    {
114
-        return array(
115
-            Asset::TYPE_CSS,
116
-            Asset::TYPE_JS,
117
-            Asset::TYPE_MANIFEST,
118
-        );
119
-    }
120
-
121
-
122
-    /**
123
-     * @param string $type
124
-     * @throws InvalidDataTypeException
125
-     */
126
-    private function setType($type)
127
-    {
128
-        if (! in_array($type, $this->validAssetTypes(), true)) {
129
-            throw new InvalidDataTypeException(
130
-                'Asset::$type',
131
-                $type,
132
-                'one of the TYPE_* class constants on \EventEspresso\core\domain\values\Asset is required'
133
-            );
134
-        }
135
-        $this->type = $type;
136
-    }
137
-
138
-
139
-    /**
140
-     * @param string $handle
141
-     * @throws InvalidDataTypeException
142
-     */
143
-    private function setHandle($handle)
144
-    {
145
-        if (! is_string($handle)) {
146
-            throw new InvalidDataTypeException(
147
-                '$handle',
148
-                $handle,
149
-                'string'
150
-            );
151
-        }
152
-        $this->handle = $handle;
153
-    }
154
-
155
-
156
-    /**
157
-     * @return string
158
-     */
159
-    public function assetNamespace()
160
-    {
161
-        return $this->domain->assetNamespace();
162
-    }
163
-
164
-
165
-    /**
166
-     * @return string
167
-     */
168
-    public function type()
169
-    {
170
-        return $this->type;
171
-    }
172
-
173
-
174
-    /**
175
-     * @return string
176
-     */
177
-    public function handle()
178
-    {
179
-        return $this->handle;
180
-    }
181
-
182
-    /**
183
-     * @return bool
184
-     */
185
-    public function isRegistered()
186
-    {
187
-        return $this->registered;
188
-    }
189
-
190
-    /**
191
-     * @param bool $registered
192
-     */
193
-    public function setRegistered($registered = true)
194
-    {
195
-        $this->registered = filter_var($registered, FILTER_VALIDATE_BOOLEAN);
196
-    }
18
+	/**
19
+	 * indicates the file extension for a CSS file
20
+	 */
21
+	const EXT_CSS = '.css';
22
+
23
+	/**
24
+	 * indicates the file extension for a JS file
25
+	 */
26
+	const EXT_JS = '.js';
27
+
28
+	/**
29
+	 * indicates the file extension for a JS file
30
+	 */
31
+	const EXT_PHP = '.php';
32
+
33
+	/**
34
+	 * indicates the file extension for a build distribution CSS file
35
+	 */
36
+	const FILE_EXTENSION_DISTRIBUTION_CSS = '.dist.css';
37
+
38
+	/**
39
+	 * indicates the file extension for a build distribution JS file
40
+	 */
41
+	const FILE_EXTENSION_DISTRIBUTION_JS = '.dist.js';
42
+
43
+	/**
44
+	 * Indicates the file extension for a build distribution dependencies json file.
45
+	 */
46
+	const FILE_EXTENSION_DISTRIBUTION_DEPS = '.dist.deps.php';
47
+
48
+	/**
49
+	 * indicates a Cascading Style Sheet asset
50
+	 */
51
+	const TYPE_CSS = 'css';
52
+
53
+	/**
54
+	 * indicates a Javascript asset
55
+	 */
56
+	const TYPE_JS = 'js';
57
+
58
+	/**
59
+	 * indicates a JSON asset
60
+	 */
61
+	CONST TYPE_JSON = 'json';
62
+	/**
63
+	 * indicates a PHP asset
64
+	 */
65
+	CONST TYPE_PHP = 'php';
66
+
67
+	/**
68
+	 * indicates a Javascript manifest file
69
+	 */
70
+	const TYPE_MANIFEST = 'manifest';
71
+
72
+	/**
73
+	 * @var DomainInterface $domain
74
+	 */
75
+	protected $domain;
76
+
77
+	/**
78
+	 * @var string $type
79
+	 */
80
+	private $type;
81
+
82
+	/**
83
+	 * @var string $handle
84
+	 */
85
+	private $handle;
86
+
87
+	/**
88
+	 * @var bool $registered
89
+	 */
90
+	private $registered = false;
91
+
92
+
93
+	/**
94
+	 * Asset constructor.
95
+	 *
96
+	 * @param                 $type
97
+	 * @param string          $handle
98
+	 * @param DomainInterface $domain
99
+	 * @throws InvalidDataTypeException
100
+	 */
101
+	public function __construct($type, $handle, DomainInterface $domain)
102
+	{
103
+		$this->domain = $domain;
104
+		$this->setType($type);
105
+		$this->setHandle($handle);
106
+	}
107
+
108
+
109
+	/**
110
+	 * @return array
111
+	 */
112
+	public function validAssetTypes()
113
+	{
114
+		return array(
115
+			Asset::TYPE_CSS,
116
+			Asset::TYPE_JS,
117
+			Asset::TYPE_MANIFEST,
118
+		);
119
+	}
120
+
121
+
122
+	/**
123
+	 * @param string $type
124
+	 * @throws InvalidDataTypeException
125
+	 */
126
+	private function setType($type)
127
+	{
128
+		if (! in_array($type, $this->validAssetTypes(), true)) {
129
+			throw new InvalidDataTypeException(
130
+				'Asset::$type',
131
+				$type,
132
+				'one of the TYPE_* class constants on \EventEspresso\core\domain\values\Asset is required'
133
+			);
134
+		}
135
+		$this->type = $type;
136
+	}
137
+
138
+
139
+	/**
140
+	 * @param string $handle
141
+	 * @throws InvalidDataTypeException
142
+	 */
143
+	private function setHandle($handle)
144
+	{
145
+		if (! is_string($handle)) {
146
+			throw new InvalidDataTypeException(
147
+				'$handle',
148
+				$handle,
149
+				'string'
150
+			);
151
+		}
152
+		$this->handle = $handle;
153
+	}
154
+
155
+
156
+	/**
157
+	 * @return string
158
+	 */
159
+	public function assetNamespace()
160
+	{
161
+		return $this->domain->assetNamespace();
162
+	}
163
+
164
+
165
+	/**
166
+	 * @return string
167
+	 */
168
+	public function type()
169
+	{
170
+		return $this->type;
171
+	}
172
+
173
+
174
+	/**
175
+	 * @return string
176
+	 */
177
+	public function handle()
178
+	{
179
+		return $this->handle;
180
+	}
181
+
182
+	/**
183
+	 * @return bool
184
+	 */
185
+	public function isRegistered()
186
+	{
187
+		return $this->registered;
188
+	}
189
+
190
+	/**
191
+	 * @param bool $registered
192
+	 */
193
+	public function setRegistered($registered = true)
194
+	{
195
+		$this->registered = filter_var($registered, FILTER_VALIDATE_BOOLEAN);
196
+	}
197 197
 }
Please login to merge, or discard this patch.
core/domain/values/assets/StylesheetAsset.php 2 patches
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -54,7 +54,7 @@
 block discarded – undo
54 54
      */
55 55
     private function setMedia($media)
56 56
     {
57
-        if (! is_string($media)) {
57
+        if ( ! is_string($media)) {
58 58
             throw new InvalidDataTypeException(
59 59
                 '$media',
60 60
                 $media,
Please login to merge, or discard this patch.
Indentation   +56 added lines, -56 removed lines patch added patch discarded remove patch
@@ -17,68 +17,68 @@
 block discarded – undo
17 17
 class StylesheetAsset extends BrowserAsset
18 18
 {
19 19
 
20
-    /**
21
-     * @var string $media
22
-     */
23
-    private $media;
20
+	/**
21
+	 * @var string $media
22
+	 */
23
+	private $media;
24 24
 
25 25
 
26
-    /**
27
-     * CssFile constructor.
28
-     *
29
-     * @param                 $handle
30
-     * @param string          $source
31
-     * @param array           $dependencies
32
-     * @param DomainInterface $domain
33
-     * @param string          $media
34
-     * @param string          $version
35
-     * @throws InvalidDataTypeException
36
-     * @throws DomainException
37
-     */
38
-    public function __construct(
39
-        $handle,
40
-        $source,
41
-        array $dependencies,
42
-        DomainInterface $domain,
43
-        $media = 'all',
44
-        $version = ''
45
-    ) {
46
-        parent::__construct(Asset::TYPE_CSS, $handle, $source, $dependencies, $domain, $version);
47
-        $this->setMedia($media);
48
-    }
26
+	/**
27
+	 * CssFile constructor.
28
+	 *
29
+	 * @param                 $handle
30
+	 * @param string          $source
31
+	 * @param array           $dependencies
32
+	 * @param DomainInterface $domain
33
+	 * @param string          $media
34
+	 * @param string          $version
35
+	 * @throws InvalidDataTypeException
36
+	 * @throws DomainException
37
+	 */
38
+	public function __construct(
39
+		$handle,
40
+		$source,
41
+		array $dependencies,
42
+		DomainInterface $domain,
43
+		$media = 'all',
44
+		$version = ''
45
+	) {
46
+		parent::__construct(Asset::TYPE_CSS, $handle, $source, $dependencies, $domain, $version);
47
+		$this->setMedia($media);
48
+	}
49 49
 
50 50
 
51
-    /**
52
-     * @return string
53
-     */
54
-    public function media()
55
-    {
56
-        return $this->media;
57
-    }
51
+	/**
52
+	 * @return string
53
+	 */
54
+	public function media()
55
+	{
56
+		return $this->media;
57
+	}
58 58
 
59 59
 
60
-    /**
61
-     * @param string $media
62
-     * @throws InvalidDataTypeException
63
-     */
64
-    private function setMedia($media)
65
-    {
66
-        if (! is_string($media)) {
67
-            throw new InvalidDataTypeException(
68
-                '$media',
69
-                $media,
70
-                'string'
71
-            );
72
-        }
73
-        $this->media = $media;
74
-    }
60
+	/**
61
+	 * @param string $media
62
+	 * @throws InvalidDataTypeException
63
+	 */
64
+	private function setMedia($media)
65
+	{
66
+		if (! is_string($media)) {
67
+			throw new InvalidDataTypeException(
68
+				'$media',
69
+				$media,
70
+				'string'
71
+			);
72
+		}
73
+		$this->media = $media;
74
+	}
75 75
 
76 76
 
77
-    /**
78
-     * @since 4.9.62.p
79
-     */
80
-    public function enqueueAsset()
81
-    {
82
-        wp_enqueue_style($this->handle());
83
-    }
77
+	/**
78
+	 * @since 4.9.62.p
79
+	 */
80
+	public function enqueueAsset()
81
+	{
82
+		wp_enqueue_style($this->handle());
83
+	}
84 84
 }
Please login to merge, or discard this patch.