Skip to content

Commit 01c4895

Browse files
do not always include API class (saves 47 kB of memory + parse time) and do not repeatedly store __DIR__ on every classmap entry
1 parent f03fa2d commit 01c4895

File tree

1 file changed

+66
-70
lines changed

1 file changed

+66
-70
lines changed

autoload.php

Lines changed: 66 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -6,80 +6,76 @@
66
require __DIR__ . '/includes/forms/admin-functions.php';
77
require __DIR__ . '/includes/integrations/functions.php';
88

9-
// require API class manually because our classloader is case-sensitive
10-
require __DIR__ . '/includes/api/class-api-v3.php';
11-
12-
// load other classes dynamically
139
spl_autoload_register(function ($class) {
1410
static $classmap = [
15-
'MC4WP_API_Connection_Exception' => __DIR__ . '/includes/api/class-connection-exception.php',
16-
'MC4WP_API_Exception' => __DIR__ . '/includes/api/class-exception.php',
17-
'MC4WP_API_Resource_Not_Found_Exception' => __DIR__ . '/includes/api/class-resource-not-found-exception.php',
18-
'MC4WP_API_V3' => __DIR__ . '/includes/api/class-api-v3.php',
19-
'MC4WP_API_V3_Client' => __DIR__ . '/includes/api/class-api-v3-client.php',
20-
'MC4WP_Admin' => __DIR__ . '/includes/admin/class-admin.php',
21-
'MC4WP_Admin_Ads' => __DIR__ . '/includes/admin/class-ads.php',
22-
'MC4WP_Admin_Ajax' => __DIR__ . '/includes/admin/class-admin-ajax.php',
23-
'MC4WP_Admin_Messages' => __DIR__ . '/includes/admin/class-admin-messages.php',
24-
'MC4WP_Admin_Review_Notice' => __DIR__ . '/includes/admin/class-review-notice.php',
25-
'MC4WP_Admin_Texts' => __DIR__ . '/includes/admin/class-admin-texts.php',
26-
'MC4WP_Admin_Tools' => __DIR__ . '/includes/admin/class-admin-tools.php',
27-
'MC4WP_AffiliateWP_Integration' => __DIR__ . '/integrations/affiliatewp/class-affiliatewp.php',
28-
'MC4WP_BuddyPress_Integration' => __DIR__ . '/integrations/buddypress/class-buddypress.php',
29-
'MC4WP_Comment_Form_Integration' => __DIR__ . '/integrations/wp-comment-form/class-comment-form.php',
30-
'MC4WP_Contact_Form_7_Integration' => __DIR__ . '/integrations/contact-form-7/class-contact-form-7.php',
31-
'MC4WP_Container' => __DIR__ . '/includes/class-container.php',
32-
'MC4WP_Custom_Integration' => __DIR__ . '/integrations/custom/class-custom.php',
33-
'MC4WP_Debug_Log' => __DIR__ . '/includes/class-debug-log.php',
34-
'MC4WP_Debug_Log_Reader' => __DIR__ . '/includes/class-debug-log-reader.php',
35-
'MC4WP_Dynamic_Content_Tags' => __DIR__ . '/includes/class-dynamic-content-tags.php',
36-
'MC4WP_Easy_Digital_Downloads_Integration' => __DIR__ . '/integrations/easy-digital-downloads/class-easy-digital-downloads.php',
37-
'MC4WP_Events_Manager_Integration' => __DIR__ . '/integrations/events-manager/class-events-manager.php',
38-
'MC4WP_Field_Formatter' => __DIR__ . '/includes/class-field-formatter.php',
39-
'MC4WP_Field_Guesser' => __DIR__ . '/includes/class-field-guesser.php',
40-
'MC4WP_Form' => __DIR__ . '/includes/forms/class-form.php',
41-
'MC4WP_Form_AMP' => __DIR__ . '/includes/forms/class-form-amp.php',
42-
'MC4WP_Form_Asset_Manager' => __DIR__ . '/includes/forms/class-asset-manager.php',
43-
'MC4WP_Form_Element' => __DIR__ . '/includes/forms/class-form-element.php',
44-
'MC4WP_Form_Listener' => __DIR__ . '/includes/forms/class-form-listener.php',
45-
'MC4WP_Form_Manager' => __DIR__ . '/includes/forms/class-form-manager.php',
46-
'MC4WP_Form_Notice' => __DIR__ . '/includes/forms/class-form-message.php',
47-
'MC4WP_Form_Output_Manager' => __DIR__ . '/includes/forms/class-output-manager.php',
48-
'MC4WP_Form_Previewer' => __DIR__ . '/includes/forms/class-form-previewer.php',
49-
'MC4WP_Form_Tags' => __DIR__ . '/includes/forms/class-form-tags.php',
50-
'MC4WP_Form_Widget' => __DIR__ . '/includes/forms/class-widget.php',
51-
'MC4WP_Forms_Admin' => __DIR__ . '/includes/forms/class-admin.php',
52-
'MC4WP_Give_Integration' => __DIR__ . '/integrations/give/class-give.php',
53-
'MC4WP_Gravity_Forms_Field' => __DIR__ . '/integrations/gravity-forms/class-field.php',
54-
'MC4WP_Gravity_Forms_Integration' => __DIR__ . '/integrations/gravity-forms/class-gravity-forms.php',
55-
'MC4WP_Integration' => __DIR__ . '/includes/integrations/class-integration.php',
56-
'MC4WP_Integration_Admin' => __DIR__ . '/includes/integrations/class-admin.php',
57-
'MC4WP_Integration_Fixture' => __DIR__ . '/includes/integrations/class-integration-fixture.php',
58-
'MC4WP_Integration_Manager' => __DIR__ . '/includes/integrations/class-integration-manager.php',
59-
'MC4WP_Integration_Tags' => __DIR__ . '/includes/integrations/class-integration-tags.php',
60-
'MC4WP_List_Data_Mapper' => __DIR__ . '/includes/class-list-data-mapper.php',
61-
'MC4WP_MailChimp' => __DIR__ . '/includes/class-mailchimp.php',
62-
'MC4WP_MailChimp_Subscriber' => __DIR__ . '/includes/class-mailchimp-subscriber.php',
63-
'MC4WP_MemberPress_Integration' => __DIR__ . '/integrations/memberpress/class-memberpress.php',
64-
'MC4WP_Ninja_Forms_Action' => __DIR__ . '/integrations/ninja-forms/class-action.php',
65-
'MC4WP_Ninja_Forms_Field' => __DIR__ . '/integrations/ninja-forms/class-field.php',
66-
'MC4WP_Ninja_Forms_Integration' => __DIR__ . '/integrations/ninja-forms/class-ninja-forms.php',
67-
'MC4WP_Ninja_Forms_V2_Integration' => __DIR__ . '/integrations/ninja-forms-2/class-ninja-forms.php',
68-
'MC4WP_Plugin' => __DIR__ . '/includes/class-plugin.php',
69-
'MC4WP_Procaptcha_Integration' => __DIR__ . '/integrations/prosopo-procaptcha/class-procaptcha-integration.php',
70-
'MC4WP_Procaptcha' => __DIR__ . '/integrations/prosopo-procaptcha/class-procaptcha.php',
71-
'MC4WP_Queue' => __DIR__ . '/includes/class-queue.php',
72-
'MC4WP_Queue_Job' => __DIR__ . '/includes/class-queue-job.php',
73-
'MC4WP_Registration_Form_Integration' => __DIR__ . '/integrations/wp-registration-form/class-registration-form.php',
74-
'MC4WP_Tools' => __DIR__ . '/includes/class-tools.php',
75-
'MC4WP_Upgrade_Routines' => __DIR__ . '/includes/admin/class-upgrade-routines.php',
76-
'MC4WP_User_Integration' => __DIR__ . '/includes/integrations/class-user-integration.php',
77-
'MC4WP_WPForms_Field' => __DIR__ . '/integrations/wpforms/class-field.php',
78-
'MC4WP_WPForms_Integration' => __DIR__ . '/integrations/wpforms/class-wpforms.php',
79-
'MC4WP_WooCommerce_Integration' => __DIR__ . '/integrations/woocommerce/class-woocommerce.php',
11+
'MC4WP_API_Connection_Exception' => '/includes/api/class-connection-exception.php',
12+
'MC4WP_API_Exception' => '/includes/api/class-exception.php',
13+
'MC4WP_API_Resource_Not_Found_Exception' => '/includes/api/class-resource-not-found-exception.php',
14+
'MC4WP_API_V3' => '/includes/api/class-api-v3.php',
15+
'MC4WP_API_V3_Client' => '/includes/api/class-api-v3-client.php',
16+
'MC4WP_Admin' => '/includes/admin/class-admin.php',
17+
'MC4WP_Admin_Ads' => '/includes/admin/class-ads.php',
18+
'MC4WP_Admin_Ajax' => '/includes/admin/class-admin-ajax.php',
19+
'MC4WP_Admin_Messages' => '/includes/admin/class-admin-messages.php',
20+
'MC4WP_Admin_Review_Notice' => '/includes/admin/class-review-notice.php',
21+
'MC4WP_Admin_Texts' => '/includes/admin/class-admin-texts.php',
22+
'MC4WP_Admin_Tools' => '/includes/admin/class-admin-tools.php',
23+
'MC4WP_AffiliateWP_Integration' => '/integrations/affiliatewp/class-affiliatewp.php',
24+
'MC4WP_BuddyPress_Integration' => '/integrations/buddypress/class-buddypress.php',
25+
'MC4WP_Comment_Form_Integration' => '/integrations/wp-comment-form/class-comment-form.php',
26+
'MC4WP_Contact_Form_7_Integration' => '/integrations/contact-form-7/class-contact-form-7.php',
27+
'MC4WP_Container' => '/includes/class-container.php',
28+
'MC4WP_Custom_Integration' => '/integrations/custom/class-custom.php',
29+
'MC4WP_Debug_Log' => '/includes/class-debug-log.php',
30+
'MC4WP_Debug_Log_Reader' => '/includes/class-debug-log-reader.php',
31+
'MC4WP_Dynamic_Content_Tags' => '/includes/class-dynamic-content-tags.php',
32+
'MC4WP_Easy_Digital_Downloads_Integration' => '/integrations/easy-digital-downloads/class-easy-digital-downloads.php',
33+
'MC4WP_Events_Manager_Integration' => '/integrations/events-manager/class-events-manager.php',
34+
'MC4WP_Field_Formatter' => '/includes/class-field-formatter.php',
35+
'MC4WP_Field_Guesser' => '/includes/class-field-guesser.php',
36+
'MC4WP_Form' => '/includes/forms/class-form.php',
37+
'MC4WP_Form_AMP' => '/includes/forms/class-form-amp.php',
38+
'MC4WP_Form_Asset_Manager' => '/includes/forms/class-asset-manager.php',
39+
'MC4WP_Form_Element' => '/includes/forms/class-form-element.php',
40+
'MC4WP_Form_Listener' => '/includes/forms/class-form-listener.php',
41+
'MC4WP_Form_Manager' => '/includes/forms/class-form-manager.php',
42+
'MC4WP_Form_Notice' => '/includes/forms/class-form-message.php',
43+
'MC4WP_Form_Output_Manager' => '/includes/forms/class-output-manager.php',
44+
'MC4WP_Form_Previewer' => '/includes/forms/class-form-previewer.php',
45+
'MC4WP_Form_Tags' => '/includes/forms/class-form-tags.php',
46+
'MC4WP_Form_Widget' => '/includes/forms/class-widget.php',
47+
'MC4WP_Forms_Admin' => '/includes/forms/class-admin.php',
48+
'MC4WP_Give_Integration' => '/integrations/give/class-give.php',
49+
'MC4WP_Gravity_Forms_Field' => '/integrations/gravity-forms/class-field.php',
50+
'MC4WP_Gravity_Forms_Integration' => '/integrations/gravity-forms/class-gravity-forms.php',
51+
'MC4WP_Integration' => '/includes/integrations/class-integration.php',
52+
'MC4WP_Integration_Admin' => '/includes/integrations/class-admin.php',
53+
'MC4WP_Integration_Fixture' => '/includes/integrations/class-integration-fixture.php',
54+
'MC4WP_Integration_Manager' => '/includes/integrations/class-integration-manager.php',
55+
'MC4WP_Integration_Tags' => '/includes/integrations/class-integration-tags.php',
56+
'MC4WP_List_Data_Mapper' => '/includes/class-list-data-mapper.php',
57+
'MC4WP_MailChimp' => '/includes/class-mailchimp.php',
58+
'MC4WP_MailChimp_Subscriber' => '/includes/class-mailchimp-subscriber.php',
59+
'MC4WP_MemberPress_Integration' => '/integrations/memberpress/class-memberpress.php',
60+
'MC4WP_Ninja_Forms_Action' => '/integrations/ninja-forms/class-action.php',
61+
'MC4WP_Ninja_Forms_Field' => '/integrations/ninja-forms/class-field.php',
62+
'MC4WP_Ninja_Forms_Integration' => '/integrations/ninja-forms/class-ninja-forms.php',
63+
'MC4WP_Ninja_Forms_V2_Integration' => '/integrations/ninja-forms-2/class-ninja-forms.php',
64+
'MC4WP_Plugin' => '/includes/class-plugin.php',
65+
'MC4WP_Procaptcha_Integration' => '/integrations/prosopo-procaptcha/class-procaptcha-integration.php',
66+
'MC4WP_Procaptcha' => '/integrations/prosopo-procaptcha/class-procaptcha.php',
67+
'MC4WP_Queue' => '/includes/class-queue.php',
68+
'MC4WP_Queue_Job' => '/includes/class-queue-job.php',
69+
'MC4WP_Registration_Form_Integration' => '/integrations/wp-registration-form/class-registration-form.php',
70+
'MC4WP_Tools' => '/includes/class-tools.php',
71+
'MC4WP_Upgrade_Routines' => '/includes/admin/class-upgrade-routines.php',
72+
'MC4WP_User_Integration' => '/includes/integrations/class-user-integration.php',
73+
'MC4WP_WPForms_Field' => '/integrations/wpforms/class-field.php',
74+
'MC4WP_WPForms_Integration' => '/integrations/wpforms/class-wpforms.php',
75+
'MC4WP_WooCommerce_Integration' => '/integrations/woocommerce/class-woocommerce.php',
8076
];
8177

8278
if (isset($classmap[$class])) {
83-
require $classmap[$class];
79+
require __DIR__ . $classmap[$class];
8480
}
8581
});

0 commit comments

Comments
 (0)