[wp-hackers] WP Roadmap Project
Chris
gaarai at gaarai.com
Wed Oct 29 21:54:46 GMT 2008
I'm currently working building what I hope will be a very valuable tool
for many WordPress developers. The tentative name of it is WP Roadmap.
I often get frustrated when I can't find exactly the right action or
filter hook to use for a specific task. I'll pick one hook, but it is
activated too late. I'll pick another, and of course, it happens way too
soon. I thought it would be great if I had a reliable means of tracking
what happens in the execution of WordPress from start to finish to build
a map of sorts. The Codex is great, but it is never completely accurate,
often lags behind in terms of version compatibility, and doesn't
accurately portray when events take place in relation to other events.
For this reason, I've decided to create WP Roadmap. The code that I've
produced so far can track calls to add_filter, apply_filters, do_action,
and do_action_ref_array functions as well as tracking include,
include_once, require, and require_once calls. Not only does it track
these individual calls, it also stores all the argument data that is
passed with these calls and a full backtrace of each call. Each step of
the backtrace also includes the function call, arguments, relevant
class, source file, and line number. As you can imagine, the backtrace
data is extremely large on a single page load, so I'm have a hard time
finding out a way to represent this data.
The code and storage containers have the ability to generate roadmaps
for specific pages and specific versions. I intend to generate roadmaps
for most of the major versions (2.5+) and with a large number of page
views for each version.
A quick sample of some of the data that this generates is provided
below. Note that this is a very small sample of the total data set for
the loading of the main page on 2.6.3 using the default template.
Function
Name Argument Data Source File Line Number
require ./wp-blog-header.php
index.php 18
require_once wp-load.php
wp-blog-header.php 12
require_once wp-config.php
wp-load.php 27
require_once wp-settings.php
wp-config.php 31
require_once wp-includes/wp-db.php
wp-includes/functions.php 2004
add_filter pre_term_name Array ( [0] => strip_tags [1] => 10 [2] =>
1 ) wp-includes/default-filters.php 20
add_filter pre_term_name Array ( [0] => trim [1] => 10 [2] => 1 )
wp-includes/default-filters.php 21
add_filter pre_term_name Array ( [0] => wp_filter_kses [1] => 10 [2]
=> 1 ) wp-includes/default-filters.php 22
My very early front-end to present this data has the ability to
selectively show/hide information based upon the primary function type.
I intend to add many filters to make it easy to find the data that
people are looking for quickly and easily.
If you are interested in this project or have any suggestions/comments,
please let me know. If you've read all of this, thank you for your time.
- Chris Jean
More information about the wp-hackers
mailing list