public function listMethods($api = null)
{
$methods = array();
foreach (array_keys($this->applications) as $app) {
if (isset($this->applications[$app]['provides'])) {
$provides = $this->applications[$app]['provides'];
if (!is_array($provides)) {
$provides = array($provides);
}
foreach ($provides as $method) {
if (strpos($method, '/') !== false) {
if (is_null($api) || substr($method, 0, strlen($api)) == $api) {
$methods[$method] = true;
}
} elseif (($api_ob = $this->_loadApi($app)) && (is_null($api) || $method == $api)) {
foreach ($api_ob->methods() as $service) {
$methods[$method . '/' . $service] = true;
}
}
}
}
}
return array_keys($methods);
}