/**
  * Get the manager associated to a given module.
  * @param  string $module The module's name.
  * @return Manager        The manager.
  */
 public function getManagerOf($module)
 {
     if (!is_string($module) || empty($module)) {
         throw new \InvalidArgumentException('Invalid module name');
     }
     if (!isset($this->managers[$module])) {
         $managerBaseName = '\\lib\\manager\\' . ucfirst($module) . 'Manager';
         $api = $this->_getApiOf($module);
         if (empty($api)) {
             $availableApis = $this->daos->listApis();
             $compatibleApis = array();
             foreach ($availableApis as $apiName) {
                 if (class_exists($managerBaseName . '_' . $apiName)) {
                     $compatibleApis[] = $apiName;
                 }
             }
             if (in_array($this->daos->getDefaultApi(), $compatibleApis)) {
                 $api = $this->daos->getDefaultApi();
             } else {
                 if (count($compatibleApis) > 0) {
                     $api = $compatibleApis[0];
                 } else {
                     throw new \RuntimeException('No DAO available for manager "' . $managerBaseName . '"');
                 }
             }
         }
         $dao = $this->daos->getDao($api);
         $managerName = $managerBaseName . '_' . $api;
         if (!class_exists($managerName)) {
             throw new \RuntimeException('Unable to find manager "' . $managerName . '"');
         }
         $this->managers[$module] = new $managerName($dao);
     }
     return $this->managers[$module];
 }
 /**
  * Recuperer un gestionnaire pour un module.
  * @param string $module le nom du module.
  * @return Manager Le gestionnaire.
  * @throws InvalidArgumentException
  */
 public function get($module)
 {
     $module = ucfirst($module);
     if (!is_string($module) || empty($module)) {
         throw new InvalidArgumentException('Le module spécifié est invalide');
     }
     if (!isset($this->managers[$module])) {
         $api = $this->daos->api($module);
         if (empty($api)) {
             $manager = '\\lib\\models\\' . $module . 'Manager';
             $this->managers[$module] = new $manager($this->webos);
         } else {
             $dao = $this->daos->get($module);
             $manager = '\\lib\\models\\' . $module . 'Manager_' . $api;
             $this->managers[$module] = new $manager($this->webos, $dao);
         }
     }
     return $this->managers[$module];
 }