Example #1
0
 /**
  * @covers Xoops\Core\Handler\Factory::registerScheme
  * @covers Xoops\Core\Handler\Factory::create
  */
 public function testRegisterScheme()
 {
     $this->object->registerScheme('testscheme', '\\Xoops\\Core\\Handler\\Scheme\\FQN');
     $handler = $this->object->create('testscheme:testname', null, true);
     $this->assertNull($handler);
     $this->setExpectedException('\\Xoops\\Core\\Exception\\InvalidHandlerSpecException');
     $this->object->create('testscheme2:testname', null, true);
 }
Example #2
0
 /**
  * Get Module Handler
  *
  * @param string|null $name       name of handler
  * @param string|null $module_dir dirname of module
  * @param boolean     $optional   true if failure to load handler should be considered a warning, not an error
  *
  * @return XoopsObjectHandler|XoopsPersistableObjectHandler|bool
  */
 public function getModuleHandler($name = null, $module_dir = null, $optional = false)
 {
     // if $module_dir is not specified
     if (!isset($module_dir)) {
         // if a module is loaded
         if ($this->module instanceof XoopsModule) {
             $module_dir = $this->module->getVar('dirname', 'n');
         } else {
             trigger_error('No Module is loaded', E_USER_ERROR);
         }
     } else {
         $module_dir = trim($module_dir);
     }
     $name = !isset($name) ? $module_dir : trim($name);
     if (!isset($this->moduleHandlers[$module_dir][$name])) {
         if (!isset($this->handlerFactory)) {
             $this->handlerFactory = HandlerFactory::getInstance();
         }
         $handler = $this->handlerFactory->create($name, $module_dir, $optional);
         if ($handler === null) {
             $this->logger()->log(LogLevel::WARNING, sprintf('No handler for %s exists in module %s', $name, $module_dir));
         }
         $this->moduleHandlers[$module_dir][$name] = $handler;
     }
     return $this->moduleHandlers[$module_dir][$name];
 }