Ticket #2525 (closed defect (bug): fixed)

Opened 6 years ago

Last modified 5 years ago

Restructure wp-includes

Reported by: ryan Owned by: ryan
Priority: normal Milestone: 2.1
Component: Administration Version: 2.0.1
Severity: normal Keywords: includes
Cc:

Description

Our includes are rather chaotic. functions.php has turned into a dumping ground for everything. Let's impose some structure.

  • Database Query - Move get, set, update, add, delete functions together into one db.php file or break them into category-db.php, option-db.php, post-db.php, bookmark-db.php, etc.
  • WP Query - Move WP_Query class and all of the functions that wrap the wp_query object (is_*() and the loop functions) into query.php.
  • Theme, Stylesheet, Template - Move all of the theming related functions to theme.php.
  • Plugin - Move action and filter functions to plugin.php.
  • Rewrite/Link - Move WP_Rewrite and supporting functions into rewrite.php.
  • Misc - Leave what's left in functions.php.

I'd like to rename existing files while we're at it. The "-functions" suffix and "functions-" prefix aren't necessary. Let's try a three tier naming approach for the bookmark, category, option, post, page, and user functions.

  • object-template.php - Template functions
  • object-helper.php - Helper funcs for the template funcs
  • object-db.php - DB functions that do the get and the set.

We'd have these for each of our objects (bookmarks, categories, ...). Helper functions would be the middle men between the template and db functions. We may not need separate files for helper funcs.

Attachments

theme-funcs.diff Download (24.1 KB) - added by ryan 6 years ago.
Moves template, stylesheet, theme fxns to theme.php
comment-funcs.diff Download (76.8 KB) - added by ryan 6 years ago.
Move comment functions into comment.php and comment-template.php
wp-settings.php.diff Download (678 bytes) - added by filosofo 6 years ago.

Change History

+1

Should we not also look at when things are included to ensure we don't pull in a particular file until absolutely necessary to reduce the amount of code loaded.

comment:2   ryan6 years ago

The problem is we don't know what any given plugin will require to do its thing. We pretty much have to load up everything just in case a plugin needs it.

Masquerade and I developed a load-on-demand system that has been proven to work but we don't have benchmarks proving its value.

Regarding the rearranging of includes, I believe it should be done but with effort to keep the file count low. For example, bookmarks.php could be internally organized into DB, Helpers, Template Tags without splitting it into three files.

comment:4   ryan6 years ago

Either way is fine by me, although I kinda like separating the template functions out from everything else so that theme authors can go looking through the template functions without having to wade through the other stuff.

I'd say two-tier: DB and DB helper funcs (as the latter are likely to be DB-specific anyway) in object-db.php, then template and template helper in object-template.php. Also make everything in *-template.php pluggable.

comment:6   ryan6 years ago

Sounds good. A simple split between domain and presentation is sufficient.

Recommend we hold off on this until after 2.0.2, as it make it hard to put changes into 2.0.2 and 2.1 simultaneously.

comment:8   ryan6 years ago

Agreed.

comment:9   ryan6 years ago

[3638] moves WP_Rewrite and its wrapper functions to rewrite.php. See #2433.

[3639] moves WP_Query and its wrapper functions to query.php Now I can actually find them. :-)

ryan6 years ago

Moves template, stylesheet, theme fxns to theme.php

Attached diff moves all of the theme related functions to theme.php.

[3711] moves theme functions to theme.php.

ryan6 years ago

Move comment functions into comment.php and comment-template.php

Path renames comment-functions.php to comment.php, moves template functions to comment-template.php, and moves comment functions in functions.php to comment.php.

[3714] reorgs comment functions.

[3843] reorgs category functions.

You deleted template-functions-category.php but wp-settings.php still includes it.

Oops. I checked in from wp-includes instead of trunk. Fixed.

[3845] reorgs bookmark functions.

[3851] reorgs post/page/attachment functions.

[3854] moves user functions to user.php.

[3862] finishes up the file renaming.

[3893] moves plugin API to plugin.php.

  • Status changed from new to closed
  • Resolution set to fixed
Note: See TracTickets for help on using tickets.