private function initializePlugin($pluginId) {

		$configData = $this->config->plugins[$pluginId];

		// load class file

		$class	= str_replace('/', '\\', $configData['class']);
		
		$file	= $this->rootPath . 'src/' . $configData['classPath'] . $class . '.php';

		if(!file_exists($file)) {
			throw new ApplicationException(sprintf("Class file '%s' for plugin '%s' not found.", $file, $pluginId));
		}

		require $file;
		
		// create instance

		$plugin = new $class;
		
		// check whether instance implements SubscriberInterface
		
		if(!$plugin instanceof SubscriberInterface) {
			throw new ApplicationException(sprintf("Plugin '%s' (class %s) does not implement the SubscriberInterface.", $pluginId, $class));
		}
		
		// set parameters
		
		if(!empty($configData['parameters'])) {

			if(!method_exists($plugin, 'setParameters')) {
				throw new ApplicationException(sprintf("Plugin '%s' (class %s) does not provide a 'setParameters' method but has parameters configured.", $pluginId, $class));
			}
			
			$plugin->setParameters($configData['parameters']);
		}

		// register plugin with dispatcher

		EventDispatcher::getInstance()->addSubscriber($plugin);
		
		return $plugin;

	}
private function initializePlugin($pluginId) {

		$configData = $this->config->plugins[$pluginId];

		// load class file

		$class	= str_replace('/', '\\', $configData['class']);
		
		$file	= $this->rootPath . 'src/' . $configData['classPath'] . $class . '.php';

		if(!file_exists($file)) {
			throw new ApplicationException(sprintf("Class file '%s' for plugin '%s' not found.", $file, $pluginId));
		}

		require $file;
		
		// create instance

		$plugin = new $class;
		
		// check whether instance implements SubscriberInterface
		
		if(!$plugin instanceof SubscriberInterface) {
			throw new ApplicationException(sprintf("Plugin '%s' (class %s) does not implement the SubscriberInterface.", $pluginId, $class));
		}
		
		// set parameters
		
		if(!empty($configData['parameters'])) {

			if(!method_exists($plugin, 'setParameters')) {
				throw new ApplicationException(sprintf("Plugin '%s' (class %s) does not provide a 'setParameters' method but has parameters configured.", $pluginId, $class));
			}
			
			$plugin->setParameters($configData['parameters']);
		}

		// register plugin with dispatcher

		EventDispatcher::getInstance()->addSubscriber($plugin);
		
		return $plugin;

	}
private function initializePlugin ( $ pluginId ) { $ configData = $ this -> config -> plugins [ $ pluginId ] ; // load class file $ class = str_replace ( '/' , '\\' , $ configData [ 'class' ] ) ; $ file = $ this -> rootPath . 'src/' . $ configData [ 'classPath' ] . $ class . '.php' ; if ( ! file_exists ( $ file ) ) { throw new ApplicationException ( sprintf ( "Class file '%s' for plugin '%s' not found." , $ file , $ pluginId ) ) ; } require $ file ; // create instance $ plugin = new $ class ; // check whether instance implements SubscriberInterface if ( ! $ plugin instanceof SubscriberInterface ) { throw new ApplicationException ( sprintf ( "Plugin '%s' (class %s) does not implement the SubscriberInterface." , $ pluginId , $ class ) ) ; } // set parameters if ( ! empty ( $ configData [ 'parameters' ] ) ) { if ( ! method_exists ( $ plugin , 'setParameters' ) ) { throw new ApplicationException ( sprintf ( "Plugin '%s' (class %s) does not provide a 'setParameters' method but has parameters configured." , $ pluginId , $ class ) ) ; } $ plugin -> setParameters ( $ configData [ 'parameters' ] ) ; } // register plugin with dispatcher EventDispatcher :: getInstance ( ) -> addSubscriber ( $ plugin ) ; return $ plugin ; }
create, initialize and register a plugin instance

@param string $pluginId
@throws ApplicationException
@return SubscriberInterface
create initialize and register a plugin instance