Alternative files[] wildcard syntax for module info files

Last updated on
30 April 2025

You are browsing documentation for an older version of Drupal, which is not supported any longer, and the information may not be correct. See current documentation for Contributed modules

xautoload, in addition to the other class loading stuff, enables a wildcard syntax for the files[] directive, in case you don't want the full transition to PSR-4. This allows to clean up your info files, but keep class files where they are, so you can do the real PSR-4 transition another day.

This has little performance implications, because the scan only happens when the class files registry is rebuilt.

Example: Views.
In views.info, the files[] stuff could be replaced with

; Only look at the top level.
files[] = handlers/*.inc
files[] = includes/*.inc
files[] = plugins/*.inc
; Scan the one-below-top level and deeper.
files[] = modules/*/**/*.inc
; Scan the top level and deeper.
files[] = tests/**/*.test

The /*/ wildcard can be any string between two slashes.
The /**/ wildcard can be either / or /*/ or /*/*/ etc.
A /** ending a string can be just anything starting with a slash.
A /*.inc ending a string is a filename with a ".inc" extension.

The original views.info:

  12 files[] = handlers/views_handler_area.inc
  13 files[] = handlers/views_handler_area_result.inc
  14 files[] = handlers/views_handler_area_text.inc
  15 files[] = handlers/views_handler_area_view.inc
  16 files[] = handlers/views_handler_argument.inc
  17 files[] = handlers/views_handler_argument_date.inc
  18 files[] = handlers/views_handler_argument_formula.inc
  19 files[] = handlers/views_handler_argument_many_to_one.inc
  20 files[] = handlers/views_handler_argument_null.inc
  21 files[] = handlers/views_handler_argument_numeric.inc
  22 files[] = handlers/views_handler_argument_string.inc
  23 files[] = handlers/views_handler_argument_group_by_numeric.inc
  24 files[] = handlers/views_handler_field.inc
  25 files[] = handlers/views_handler_field_counter.inc
  26 files[] = handlers/views_handler_field_boolean.inc
  27 files[] = handlers/views_handler_field_custom.inc
  28 files[] = handlers/views_handler_field_date.inc
  29 files[] = handlers/views_handler_field_entity.inc
  30 files[] = handlers/views_handler_field_markup.inc
  31 files[] = handlers/views_handler_field_math.inc
  32 files[] = handlers/views_handler_field_numeric.inc
  33 files[] = handlers/views_handler_field_prerender_list.inc
  34 files[] = handlers/views_handler_field_time_interval.inc
  35 files[] = handlers/views_handler_field_serialized.inc
  36 files[] = handlers/views_handler_field_url.inc
  37 files[] = handlers/views_handler_filter.inc
  38 files[] = handlers/views_handler_filter_boolean_operator.inc
  39 files[] = handlers/views_handler_filter_boolean_operator_string.inc
  40 files[] = handlers/views_handler_filter_date.inc
  41 files[] = handlers/views_handler_filter_equality.inc
  42 files[] = handlers/views_handler_filter_group_by_numeric.inc
  43 files[] = handlers/views_handler_filter_in_operator.inc
  44 files[] = handlers/views_handler_filter_many_to_one.inc
  45 files[] = handlers/views_handler_filter_numeric.inc
  46 files[] = handlers/views_handler_filter_string.inc
  47 files[] = handlers/views_handler_relationship.inc
  48 files[] = handlers/views_handler_relationship_groupwise_max.inc
  49 files[] = handlers/views_handler_sort.inc
  50 files[] = handlers/views_handler_sort_date.inc
  51 files[] = handlers/views_handler_sort_formula.inc
  52 files[] = handlers/views_handler_sort_group_by_numeric.inc
  53 files[] = handlers/views_handler_sort_menu_hierarchy.inc
  54 files[] = handlers/views_handler_sort_random.inc
  55 ; Includes
  56 files[] = includes/base.inc
  57 files[] = includes/handlers.inc
  58 files[] = includes/plugins.inc
  59 files[] = includes/view.inc
  60 ; Modules
  61 files[] = modules/aggregator/views_handler_argument_aggregator_fid.inc
  62 files[] = modules/aggregator/views_handler_argument_aggregator_iid.inc
  63 files[] = modules/aggregator/views_handler_argument_aggregator_category_cid.inc
  64 files[] = modules/aggregator/views_handler_field_aggregator_title_link.inc
  65 files[] = modules/aggregator/views_handler_field_aggregator_category.inc
  66 files[] = modules/aggregator/views_handler_field_aggregator_item_description.inc
  67 files[] = modules/aggregator/views_handler_field_aggregator_xss.inc
  68 files[] = modules/aggregator/views_handler_filter_aggregator_category_cid.inc
  69 files[] = modules/aggregator/views_plugin_row_aggregator_rss.inc
  70 files[] = modules/comment/views_handler_argument_comment_user_uid.inc
  71 files[] = modules/comment/views_handler_field_comment.inc
  72 files[] = modules/comment/views_handler_field_comment_depth.inc
  73 files[] = modules/comment/views_handler_field_comment_link.inc
  74 files[] = modules/comment/views_handler_field_comment_link_approve.inc
  75 files[] = modules/comment/views_handler_field_comment_link_delete.inc
  76 files[] = modules/comment/views_handler_field_comment_link_edit.inc
  77 files[] = modules/comment/views_handler_field_comment_link_reply.inc
  78 files[] = modules/comment/views_handler_field_comment_node_link.inc
  79 files[] = modules/comment/views_handler_field_comment_username.inc
  80 files[] = modules/comment/views_handler_field_ncs_last_comment_name.inc
  81 files[] = modules/comment/views_handler_field_ncs_last_updated.inc
  82 files[] = modules/comment/views_handler_field_node_comment.inc
  83 files[] = modules/comment/views_handler_field_node_new_comments.inc
  84 files[] = modules/comment/views_handler_field_last_comment_timestamp.inc
  85 files[] = modules/comment/views_handler_filter_comment_user_uid.inc
  86 files[] = modules/comment/views_handler_filter_ncs_last_updated.inc
  87 files[] = modules/comment/views_handler_filter_node_comment.inc
  88 files[] = modules/comment/views_handler_sort_comment_thread.inc
  89 files[] = modules/comment/views_handler_sort_ncs_last_comment_name.inc
  90 files[] = modules/comment/views_handler_sort_ncs_last_updated.inc
  91 files[] = modules/comment/views_plugin_row_comment_rss.inc
  92 files[] = modules/comment/views_plugin_row_comment_view.inc
  93 files[] = modules/contact/views_handler_field_contact_link.inc
  94 files[] = modules/field/views_handler_field_field.inc
  95 files[] = modules/field/views_handler_relationship_entity_reverse.inc
  96 files[] = modules/field/views_handler_argument_field_list.inc
  97 files[] = modules/field/views_handler_filter_field_list.inc
  98 files[] = modules/filter/views_handler_field_filter_format_name.inc
  99 files[] = modules/locale/views_handler_argument_locale_group.inc
 100 files[] = modules/locale/views_handler_argument_locale_language.inc
 101 files[] = modules/locale/views_handler_field_locale_group.inc
 102 files[] = modules/locale/views_handler_field_locale_language.inc
 103 files[] = modules/locale/views_handler_field_locale_link_edit.inc
 104 files[] = modules/locale/views_handler_filter_locale_group.inc
 105 files[] = modules/locale/views_handler_filter_locale_language.inc
 106 files[] = modules/locale/views_handler_filter_locale_version.inc
 107 files[] = modules/node/views_handler_argument_dates_various.inc
 108 files[] = modules/node/views_handler_argument_node_language.inc
 109 files[] = modules/node/views_handler_argument_node_nid.inc
 110 files[] = modules/node/views_handler_argument_node_type.inc
 111 files[] = modules/node/views_handler_argument_node_vid.inc
 112 files[] = modules/node/views_handler_argument_node_uid_revision.inc
 113 files[] = modules/node/views_handler_field_history_user_timestamp.inc
 114 files[] = modules/node/views_handler_field_node.inc
 115 files[] = modules/node/views_handler_field_node_link.inc
 116 files[] = modules/node/views_handler_field_node_link_delete.inc
 117 files[] = modules/node/views_handler_field_node_link_edit.inc
 118 files[] = modules/node/views_handler_field_node_revision.inc
 119 files[] = modules/node/views_handler_field_node_revision_link_delete.inc
 120 files[] = modules/node/views_handler_field_node_revision_link_revert.inc
 121 files[] = modules/node/views_handler_field_node_path.inc
 122 files[] = modules/node/views_handler_field_node_type.inc
 123 files[] = modules/node/views_handler_filter_history_user_timestamp.inc
 124 files[] = modules/node/views_handler_filter_node_access.inc
 125 files[] = modules/node/views_handler_filter_node_status.inc
 126 files[] = modules/node/views_handler_filter_node_type.inc
 127 files[] = modules/node/views_handler_filter_node_uid_revision.inc
 128 files[] = modules/node/views_plugin_argument_default_node.inc
 129 files[] = modules/node/views_plugin_argument_validate_node.inc
 130 files[] = modules/node/views_plugin_row_node_rss.inc
 131 files[] = modules/node/views_plugin_row_node_view.inc
 132 files[] = modules/profile/views_handler_field_profile_date.inc
 133 files[] = modules/profile/views_handler_field_profile_list.inc
 134 files[] = modules/profile/views_handler_filter_profile_selection.inc
 135 files[] = modules/search/views_handler_argument_search.inc
 136 files[] = modules/search/views_handler_field_search_score.inc
 137 files[] = modules/search/views_handler_filter_search.inc
 138 files[] = modules/search/views_handler_sort_search_score.inc
 139 files[] = modules/search/views_plugin_row_search_view.inc
 140 files[] = modules/statistics/views_handler_field_accesslog_path.inc
 141 files[] = modules/system/views_handler_argument_file_fid.inc
 142 files[] = modules/system/views_handler_field_file.inc
 143 files[] = modules/system/views_handler_field_file_extension.inc
 144 files[] = modules/system/views_handler_field_file_filemime.inc
 145 files[] = modules/system/views_handler_field_file_uri.inc
 146 files[] = modules/system/views_handler_field_file_status.inc
 147 files[] = modules/system/views_handler_filter_file_status.inc
 148 files[] = modules/taxonomy/views_handler_argument_taxonomy.inc
 149 files[] = modules/taxonomy/views_handler_argument_term_node_tid.inc
 150 files[] = modules/taxonomy/views_handler_argument_term_node_tid_depth.inc
 151 files[] = modules/taxonomy/views_handler_argument_term_node_tid_depth_modifier.inc
 152 files[] = modules/taxonomy/views_handler_argument_vocabulary_vid.inc
 153 files[] = modules/taxonomy/views_handler_argument_vocabulary_machine_name.inc
 154 files[] = modules/taxonomy/views_handler_field_taxonomy.inc
 155 files[] = modules/taxonomy/views_handler_field_term_node_tid.inc
 156 files[] = modules/taxonomy/views_handler_field_term_link_edit.inc
 157 files[] = modules/taxonomy/views_handler_filter_term_node_tid.inc
 158 files[] = modules/taxonomy/views_handler_filter_term_node_tid_depth.inc
 159 files[] = modules/taxonomy/views_handler_filter_vocabulary_vid.inc
 160 files[] = modules/taxonomy/views_handler_filter_vocabulary_machine_name.inc
 161 files[] = modules/taxonomy/views_handler_relationship_node_term_data.inc
 162 files[] = modules/taxonomy/views_plugin_argument_validate_taxonomy_term.inc
 163 files[] = modules/taxonomy/views_plugin_argument_default_taxonomy_tid.inc
 164 ;files[] = modules/translation/views_handler_argument_node_language.inc
 165 files[] = modules/system/views_handler_filter_system_type.inc
 166 files[] = modules/translation/views_handler_argument_node_tnid.inc
 167 files[] = modules/translation/views_handler_field_node_language.inc
 168 files[] = modules/translation/views_handler_field_node_link_translate.inc
 169 files[] = modules/translation/views_handler_field_node_translation_link.inc
 170 files[] = modules/translation/views_handler_filter_node_language.inc
 171 files[] = modules/translation/views_handler_filter_node_tnid.inc
 172 files[] = modules/translation/views_handler_filter_node_tnid_child.inc
 173 files[] = modules/translation/views_handler_relationship_translation.inc
 174 files[] = modules/upload/views_handler_field_upload_description.inc
 175 files[] = modules/upload/views_handler_field_upload_fid.inc
 176 files[] = modules/upload/views_handler_filter_upload_fid.inc
 177 files[] = modules/user/views_handler_argument_user_uid.inc
 178 files[] = modules/user/views_handler_argument_users_roles_rid.inc
 179 files[] = modules/user/views_handler_field_user.inc
 180 files[] = modules/user/views_handler_field_user_language.inc
 181 files[] = modules/user/views_handler_field_user_link.inc
 182 files[] = modules/user/views_handler_field_user_link_cancel.inc
 183 files[] = modules/user/views_handler_field_user_link_edit.inc
 184 files[] = modules/user/views_handler_field_user_mail.inc
 185 files[] = modules/user/views_handler_field_user_name.inc
 186 files[] = modules/user/views_handler_field_user_permissions.inc
 187 files[] = modules/user/views_handler_field_user_picture.inc
 188 files[] = modules/user/views_handler_field_user_roles.inc
 189 files[] = modules/user/views_handler_filter_user_current.inc
 190 files[] = modules/user/views_handler_filter_user_name.inc
 191 files[] = modules/user/views_handler_filter_user_permissions.inc
 192 files[] = modules/user/views_handler_filter_user_roles.inc
 193 files[] = modules/user/views_plugin_argument_default_current_user.inc
 194 files[] = modules/user/views_plugin_argument_default_user.inc
 195 files[] = modules/user/views_plugin_argument_validate_user.inc
 196 ; Plugins
 197 files[] = plugins/views_plugin_access.inc
 198 files[] = plugins/views_plugin_access_none.inc
 199 files[] = plugins/views_plugin_access_perm.inc
 200 files[] = plugins/views_plugin_access_role.inc
 201 files[] = plugins/views_plugin_argument_default.inc
 202 files[] = plugins/views_plugin_argument_default_php.inc
 203 files[] = plugins/views_plugin_argument_default_fixed.inc
 204 files[] = plugins/views_plugin_argument_default_raw.inc
 205 files[] = plugins/views_plugin_argument_validate.inc
 206 files[] = plugins/views_plugin_argument_validate_numeric.inc
 207 files[] = plugins/views_plugin_argument_validate_php.inc
 208 files[] = plugins/views_plugin_cache.inc
 209 files[] = plugins/views_plugin_cache_none.inc
 210 files[] = plugins/views_plugin_cache_time.inc
 211 files[] = plugins/views_plugin_display.inc
 212 files[] = plugins/views_plugin_display_attachment.inc
 213 files[] = plugins/views_plugin_display_block.inc
 214 files[] = plugins/views_plugin_display_default.inc
 215 files[] = plugins/views_plugin_display_extender.inc
 216 files[] = plugins/views_plugin_display_feed.inc
 217 files[] = plugins/views_plugin_exposed_form_basic.inc
 218 files[] = plugins/views_plugin_exposed_form.inc
 219 files[] = plugins/views_plugin_exposed_form_input_required.inc
 220 files[] = plugins/views_plugin_display_page.inc
 221 files[] = plugins/views_plugin_localization_core.inc
 222 files[] = plugins/views_plugin_localization.inc
 223 files[] = plugins/views_plugin_localization_none.inc
 224 files[] = plugins/views_plugin_pager.inc
 225 files[] = plugins/views_plugin_pager_full.inc
 226 files[] = plugins/views_plugin_pager_mini.inc
 227 files[] = plugins/views_plugin_pager_none.inc
 228 files[] = plugins/views_plugin_pager_some.inc
 229 files[] = plugins/views_plugin_query.inc
 230 files[] = plugins/views_plugin_query_default.inc
 231 files[] = plugins/views_plugin_row.inc
 232 files[] = plugins/views_plugin_row_fields.inc
 233 files[] = plugins/views_plugin_style.inc
 234 files[] = plugins/views_plugin_style_default.inc
 235 files[] = plugins/views_plugin_style_grid.inc
 236 files[] = plugins/views_plugin_style_list.inc
 237 files[] = plugins/views_plugin_style_jump_menu.inc
 238 files[] = plugins/views_plugin_style_rss.inc
 239 files[] = plugins/views_plugin_style_summary.inc
 240 files[] = plugins/views_plugin_style_summary_jump_menu.inc
 241 files[] = plugins/views_plugin_style_summary_unformatted.inc
 242 files[] = plugins/views_plugin_style_table.inc
 243 
 244 ; Tests
 245 files[] = tests/handlers/views_handler_area_text.test
 246 files[] = tests/handlers/views_handler_argument_null.test
 247 files[] = tests/handlers/views_handler_field_boolean.test
 248 files[] = tests/handlers/views_handler_field_custom.test
 249 files[] = tests/handlers/views_handler_field_counter.test
 250 files[] = tests/handlers/views_handler_field_date.test
 251 files[] = tests/handlers/views_handler_field_file_size.test
 252 files[] = tests/handlers/views_handler_field_math.test
 253 files[] = tests/handlers/views_handler_field_url.test
 254 files[] = tests/handlers/views_handler_field_xss.test
 255 files[] = tests/handlers/views_handler_filter_date.test
 256 files[] = tests/handlers/views_handler_filter_equality.test
 257 files[] = tests/handlers/views_handler_filter_in_operator.test
 258 files[] = tests/handlers/views_handler_filter_numeric.test
 259 files[] = tests/handlers/views_handler_filter_string.test
 260 files[] = tests/handlers/views_handler_sort_random.test
 261 files[] = tests/handlers/views_handler_sort_date.test
 262 files[] = tests/handlers/views_handler_sort.test
 263 files[] = tests/test_plugins/views_test_plugin_access_test_dynamic.inc
 264 files[] = tests/test_plugins/views_test_plugin_access_test_static.inc
 265 files[] = tests/styles/views_plugin_style_jump_menu.test
 266 files[] = tests/styles/views_plugin_style.test
 267 files[] = tests/views_access.test
 268 files[] = tests/views_analyze.test
 269 files[] = tests/views_basic.test
 270 files[] = tests/views_argument_default.test
 271 files[] = tests/views_argument_validator.test
 272 files[] = tests/views_exposed_form.test
 273 files[] = tests/views_glossary.test
 274 files[] = tests/views_groupby.test
 275 files[] = tests/views_handlers.test
 276 files[] = tests/views_module.test
 277 files[] = tests/views_pager.test
 278 files[] = tests/views_plugin_localization_test.inc
 279 files[] = tests/views_translatable.test
 280 files[] = tests/views_query.test
 281 files[] = tests/views_upgrade.test
 282 files[] = tests/views_test.views_default.inc
 283 files[] = tests/comment/views_handler_argument_comment_user_uid.test
 284 files[] = tests/comment/views_handler_filter_comment_user_uid.test
 285 files[] = tests/user/views_user_argument_default.test
 286 files[] = tests/user/views_user_argument_validate.test
 287 files[] = tests/user/views_user.test
 288 files[] = tests/views_cache.test
 289 files[] = tests/views_view.test
 290 files[] = tests/views_ui.test

Sick, eh?

Disclaimer: Probably this does not work for the "tests" stuff, because drupal.org testbot does not have xautoload installed.

Help improve this page

Page status: Not set

You can: