getPlugin() 공개 메소드

Returns the corresponding instance for a specified plugin, loading it if it is not already loaded and autoloading is enabled.
public getPlugin ( string $name ) : Phergie_Plugin_Abstract
$name string Short name of the plugin class
리턴 Phergie_Plugin_Abstract Plugin instance
예제 #1
0
 /**
  * Tests adding plugin paths via configuration.
  *
  * @return void
  */
 public function testAddPluginPathsViaConfiguration()
 {
     $dir = dirname(__FILE__);
     $prefix = 'Phergie_Plugin_';
     $this->settings['plugins.paths'] = array($dir => $prefix);
     // Reinitialize the handler so the configuration change takes effect
     // within the constructor
     $this->handler = new Phergie_Plugin_Handler($this->config, $this->events);
     $this->handler->setAutoload(true);
     $this->handler->getPlugin('Mock');
 }
예제 #2
0
 /**
  * Tests an exception is thrown when trying to get a plugin
  * that is not already loaded and autoload is off
  *
  * @depends testDefaultsToNotAutoload
  * @return void
  */
 public function testExceptionThrownWhenLoadingPluginWithoutAutoload()
 {
     $this->handler->addPath(dirname(__FILE__), 'Phergie_Plugin_');
     try {
         $this->handler->getPlugin('Mock');
     } catch (Phergie_Plugin_Exception $expected) {
         $this->assertEquals(Phergie_Plugin_Exception::ERR_PLUGIN_NOT_LOADED, $expected->getCode());
         return;
     }
     $this->fail('An expected exception has not been raised.');
 }
예제 #3
0
 /**
  * Tests adding plugin paths via configuration.
  *
  * @return void
  */
 public function testAddPluginPathsViaConfiguration()
 {
     $dir = dirname(__FILE__);
     $prefix = 'Phergie_Plugin_';
     $paths = array($dir => $prefix);
     $this->config->expects($this->any())->method('offsetExists')->will($this->returnValue(true));
     $this->config->expects($this->any())->method('offsetGet')->will($this->returnValue($paths));
     // Reinitialize the handler so the configuration change takes effect
     // within the constructor
     $this->handler = new Phergie_Plugin_Handler($this->config, $this->events);
     $this->handler->setAutoload(true);
     $this->handler->getPlugin('Mock');
 }