Cristi Burcă edited this page Aug 21, 2013 · 31 revisions

scbFramework is a collection of classes and functions that speed up WordPress plugin and theme development.

For an example plugin, see https://github.com/scribu/wp-scb-framework-example

Classes

Loading

There are two "official" ways to load the scbFramework files:

Loading from a plugin

  1. Move the scbFramework folder to wp-content/plugins/my-plugin/scb.

Then, just require the load.php file:

<?php
// Plugin Name: My plugin

require dirname( __FILE__ ) . '/scb/load.php';

function my_plugin_init() {
  $option = new scbOptions( 'my_plugin' );  // OK

  require_once dirname(__FILE__) . '/plugin-functions.php'; // using require() can cause activation errors
}

scb_init( 'my_plugin_init' );

Instantiating a class before the my_plugin_init() function runs will result in a "class does not exist" fatal error.

Instantiating a class later than the 'plugins_loaded' hook might result in malfunctions, since scb classes make various add_action() calls themselves.

Loading from mu-plugins

This method is recommended when you plan to use scbFramework on a site that you control.

  1. Move the scbFramework folder to wp-content/mu-plugins/scb (create the directories as needed).
  2. Create a wp-content/mu-plugins/scb-load.php file with following contents:
<?php
define( 'SCB_LOAD_MU', dirname( __FILE__ ) . '/scb/' );

foreach ( array(
        'scbUtil', 'scbOptions', 'scbForms', 'scbTable',
	'scbWidget', 'scbAdminPage', 'scbBoxesPage', 'scbPostMetabox',
	'scbCron', 'scbHooks',
) as $className ) {
	include SCB_LOAD_MU . substr( $className, 3 ) . '.php';
}

function scb_init( $callback = '' ) {
	if ( $callback )
		call_user_func( $callback );
}

Now, all the classes are available to all plugins and themes. For example, in your theme's functions.php file you can write:

<?php

$my_theme_options = new scbOptions( 'my_theme_options' );

There's also an example plugin on WordPress.org.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.