Skip to content
This repository has been archived by the owner on Nov 2, 2018. It is now read-only.

Commit

Permalink
Merge branch 'feature/fix-after-config-load' into develop
Browse files Browse the repository at this point in the history
  • Loading branch information
hassankhan committed Jan 27, 2014
2 parents e19203f + 32d0322 commit 7212642
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 38 deletions.
17 changes: 2 additions & 15 deletions library/Zepto/PluginInterface.php
Original file line number Diff line number Diff line change
Expand Up @@ -13,27 +13,14 @@

interface PluginInterface {

public function after_config_load(&$settings);

public function after_plugins_load();

public function before_config_load(&$settings);

public function before_file_load(&$content_dir);

public function after_file_load(&$content);

public function request_url(&$url);

// Move all these methods into their own classes
// public function before_file_meta_parsed(&$headers);

// public function after_file_meta_parsed(&$meta);

// public function before_content_parsed(&$content);

// public function after_content_parsed(&$content);

// public function before_render(&$twig_vars, &$twig, &$template);

// public function after_render(&$output);

}
34 changes: 19 additions & 15 deletions library/Zepto/Zepto.php
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,11 @@ public function __construct(array $settings = array())

// Create application hooks
$container['hooks'] = array(
'after_config_load' => array(),
'after_plugins_load' => array(),
'request_url' => array(),
'before_file_load' => array(),
'after_file_load' => array()
'after_plugins_load' => array(),
'before_config_load' => array(),
'request_url' => array(),
'before_file_load' => array(),
'after_file_load' => array()
);

// Configure error handler
Expand Down Expand Up @@ -108,12 +108,17 @@ function ($container) {
}
);

// Set this particular setting now
$container['plugins_enabled'] = $settings['zepto']['plugins_enabled'];

// Set application settings
$container['settings'] = $settings;
// Load plugins if they're enabled
if ($container['plugins_enabled'] === true) {
$this->load_plugins($settings['zepto']['plugins_dir']);
}

// Load plugins
$this->load_plugins();
// Run application hooks and set application settings
$this->run_hooks('before_config_load', array(&$settings));
$container['settings'] = $settings;

// Load content from files
$this->load_content();
Expand All @@ -140,16 +145,16 @@ public function run()
* Runs all hooks registered to the specified hook name
*
* @param string $hook
* @param string $args
* @return boolean Returns true on successful execution of all hooks, false if plugins are disabled
*/
public function run_hooks($hook_id, $args = array())
{
$container = $this->container;
$settings = $container['settings']['zepto'];
$hooks = $container['hooks'];

// If plugins are disabled, do not run
if ($settings['plugins_enabled'] === false) {
if ($container['plugins_enabled'] === false) {
return false;
}

Expand Down Expand Up @@ -177,17 +182,16 @@ public function run_hooks($hook_id, $args = array())
*
* @return
*/
protected function load_plugins()
protected function load_plugins($plugins_dir)
{
$container = $this->container;
$settings = $container['settings']['zepto'];

if ($settings['plugins_enabled'] === true) {
if ($container['plugins_enabled'] === true) {
$plugin_loader = $container['plugin_loader'];

// Load plugins from 'plugins' folder
$container['plugins'] = $plugin_loader->load(
$settings['plugins_dir'],
$plugins_dir,
array('.php')
);
}
Expand Down
8 changes: 4 additions & 4 deletions plugins/ExamplePlugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@

class ExamplePlugin implements \Zepto\PluginInterface {

public function after_config_load(&$settings)
public function after_plugins_load()
{
echo __CLASS__ . '::after_config_load';
echo __CLASS__ . '::after_plugins_load';
}

public function after_plugins_load()
public function before_config_load(&$settings)
{
echo __CLASS__ . '::after_plugins_load';
echo __CLASS__ . '::before_config_load';
}

public function before_file_load(&$content_dir)
Expand Down
8 changes: 4 additions & 4 deletions plugins/OtherExamplePlugin.php
Original file line number Diff line number Diff line change
Expand Up @@ -11,14 +11,14 @@

class OtherExamplePlugin implements \Zepto\PluginInterface {

public function after_config_load(&$settings)
public function after_plugins_load()
{
echo __CLASS__ . '::after_config_load';
echo __CLASS__ . '::after_plugins_load';
}

public function after_plugins_load()
public function before_config_load(&$settings)
{
echo __CLASS__ . '::after_plugins_load';
echo __CLASS__ . '::before_config_load';
}

public function before_file_load(&$content_dir)
Expand Down

0 comments on commit 7212642

Please sign in to comment.