[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.

	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