Example #1
0
 public static function loadListeners($module_path)
 {
     foreach (glob($module_path . '*', GLOB_ONLYDIR) as $module) {
         $moduleName = basename($module);
         $moduleTestCaseClassname = '\\' . $moduleName . 'Test\\Framework\\TestCase';
         $listenerOptions = new \Zend\ModuleManager\Listener\ListenerOptions(array('module_paths' => array($module_path . '/' . $moduleName)));
         $defaultListener = new \Zend\ModuleManager\Listener\DefaultListenerAggregate($listenerOptions);
         if (method_exists($moduleTestCaseClassname, 'setLocator')) {
             $config = $defaultListener->getConfigListener()->getMergedConfig();
             $di = new \Zend\Di\Di();
             $di->instanceManager()->addTypePreference('Zend\\Di\\LocatorInterface', $di);
             if (isset($config['di'])) {
                 $diConfig = new \Zend\Di\Config($config['di']);
                 $diConfig->configure($di);
             }
             $routerDiConfig = new \Zend\Di\Config(array('definition' => array('class' => array('Zend\\Mvc\\Router\\RouteStackInterface' => array('instantiator' => array('Zend\\Mvc\\Router\\Http\\TreeRouteStack', 'factory'))))));
             $routerDiConfig->configure($di);
             call_user_func_array($moduleTestCaseClassname . '::setLocator', array($di));
         }
     }
 }
Example #2
0
$modulePaths = array(dirname($rootPath));
if (isset($additionalModulePaths)) {
    $modulePaths = array_merge($modulePaths, $additionalModulePaths);
}
// Load this module and defined dependencies
$modules = array($moduleName);
if (isset($moduleDependencies)) {
    $modules = array_merge($modules, $moduleDependencies);
}
$listenerOptions = new Zend\ModuleManager\Listener\ListenerOptions(array('module_paths' => $modulePaths));
$defaultListeners = new Zend\ModuleManager\Listener\DefaultListenerAggregate($listenerOptions);
$sharedEvents = new Zend\EventManager\SharedEventManager();
$moduleManager = new \Zend\ModuleManager\ModuleManager($modules);
$moduleManager->getEventManager()->setSharedManager($sharedEvents);
$moduleManager->getEventManager()->attachAggregate($defaultListeners);
$moduleManager->loadModules();
if (method_exists($moduleTestCaseClassname, 'setLocator')) {
    $config = $defaultListeners->getConfigListener()->getMergedConfig();
    $di = new \Zend\Di\Di();
    $di->instanceManager()->addTypePreference('Zend\\Di\\LocatorInterface', $di);
    if (isset($config['di'])) {
        $diConfig = new \Zend\Di\Config($config['di']);
        $diConfig->configure($di);
    }
    $routerDiConfig = new \Zend\Di\Config(array('definition' => array('class' => array('Zend\\Mvc\\Router\\RouteStackInterface' => array('instantiator' => array('Zend\\Mvc\\Router\\Http\\TreeRouteStack', 'factory'))))));
    $routerDiConfig->configure($di);
    call_user_func_array($moduleTestCaseClassname . '::setLocator', array($di));
}
// When this is in global scope, PHPUnit catches exception:
// Exception: Zend\Stdlib\PriorityQueue::serialize() must return a string or NULL
unset($moduleManager, $sharedEvents);