hasIdentity()){ $this->_redirect('/user/login'); } } /** * Affichage de la documentation des webservices */ public function indexAction() { $ws = $this->_getParam('ws','WsEntreprise'); //Liste de webservice protégé $protectedWs = array( 'WsInterne' => array('mricois', 'ylenaour', 'sbeaugrand') ); //On vérifie que l'utilisateur peut accèder à la documentation if ( array_key_exists($ws, $protectedWs) ) { $auth = Zend_Auth::getInstance(); $username = $auth->getIdentity(); if ( !in_array($username, $protectedWs[$ws]) ) { $this->renderScript('documentation/nodoc.phtml'); exit; } } $wsConfig = new Zend_Config_Ini(APPLICATION_PATH . '/configs/'.$ws.'.ini'); foreach ($wsConfig->Type as $type){ $this->classmap[$type] = $type; } //Définir l'url d'accès au WSDL switch($ws){ case 'WsInterne': $wsdl_url = $this->view->baseUrl() . '/sinterne?wsdl'; break; case 'WsEntreprise': if (APPLICATION_ENV == 'production'){ $wsdl_url = $this->view->baseUrl().'/service?wsdl'; } else { $wsdl_url = $this->view->baseUrl().'/service?wsdl-auto'; } break; } //Affichage de la documentation require_once 'Web/WebClassDoc.php'; $doc = new WebClassDoc($ws, $this->classmap); $tabServiceMethods = $doc->getServiceMethods(); $tabServiceTypes = $doc->getServiceTypes(); $this->view->assign('wsdl', $wsdl_url); $this->view->assign('serviceMethods', $tabServiceMethods); $this->view->assign('serviceTypes', $tabServiceTypes); } /** * Liste les exemples de code disponible pour chaque méthode */ public function exemplesAction() { } /** * Affichage exemple de code avec coloration syntaxique * Le code doit être placé dans public/code et doit être nommé * [nom de la méthode]-langage.txt */ public function codeAction() { $langage = strtolower($this->_getParam('langage','')); $element = $this->_getParam('element',''); $fichier = APPLICATION_PATH . '/../public/code/' . $element . '-' . $langage . '.txt'; if (file_exists($fichier)){ $sourceCode = file_get_contents($fichier); require_once 'geshi/geshi.php'; $geshi = new GeSHi($sourceCode, $langage); $geshi->enable_line_numbers(GESHI_NORMAL_LINE_NUMBERS); $sourceHighlight = $geshi->parse_code(); $this->view->assign('langage', strtoupper($langage)); $this->view->assign('code', $sourceHighlight); } else { $this->view->assign('langage', 'Element non traités, Vous pouvez aussi nous fournir des exemples.'); } } }