Pro PHP- Patterns, Frameworks, Testing and More

(vip2019) #1

(^80) CHAPTER 7 ■ REFLECTION API
$sidebars = array_merge($sidebars, $items);
}
}
return $sidebars;
}
Next, create a class that implements IPlugin, as shown in Listing 7-7. This plug-in class
implements a menu item and an article, but does not implement a sidebar.
Listing 7-7. Creating a Reflection Plug-in That Implements Some Optional Facilities (plugin.php)
<?php
class MyCoolPlugin implements IPlugin {
public static function getName() { return 'MyCoolPlugin'; }
public static function getMenuItems() {
//Numeric indexed array of menu items
return array(array(
'description'=>'MyCoolPlugin',
'link'=>'/MyCoolPlugin'
));
}
public static function getArticles() {
//Numeric array of articles
return array(array(
'path'=>'/MyCoolPlugin',
'title'=>'This is a really cool article',
'text'=>'This article is cool because...'
));
}
}
?>
This plug-in now provides some functionality. Listing 7-8 shows an extremely basic imple-
mentation involving this plug-in.
Listing 7-8. Using the Plug-in
//First include your plug-ins;
require_once('/path/to/plugin.php');
$menu = computeMenu();
$sidebars = computeSidebars();
$articles = computeArticles();
//This could be a lot more complex
print_r($menu);
print_r($sidebars);
print_r($articles);


...


McArthur_819-9C07.fm Page 80 Friday, February 22, 2008 8:59 AM

Free download pdf