README ====== Display the documentation of our services, manage the SOAP services Based on ZendFramework version 1.x Génération des fichiers autoload ================================ php bin/classmap_generator.php -l ./application -w -o ./application/autoload_classmap.php php bin/classmap_generator.php -l ./library/Zend -w -o ./library/Zend/autoload_classmap.php php bin/classmap_generator.php -l ./library/Application -w -o ./library/Application/autoload_classmap.php php bin/classmap_generator.php -l ./library/Scores -w -o ./library/Scores/autoload_classmap.php php bin/classmap_generator.php -l ./library/SdMetier -w -o ./library/SdMetier/autoload_classmap.php Fichier de configuration ======================== La configuration est décomposé en plusieurs fichiers, avec adaptation suivant la machine - mysql.php - smtp.php - sphinx.php - stockage.php sans adaptation suivant la machine - partenaires.php Fonctionnement ============== Obtenir les WSDL Pour le service Entreprise - En mode développement : http://hostname/entreprise/version?wsdl-auto - Générer le WSDL : http://hostname/entreprise/version?wsdl-generate - Utiliser le WSDL généré : http://hostname/entreprise/version?wsdl Pour le service Interne http://hostname/interne/version?wsdl Pour les clients http://hostname/clients/nom_du_client/version?wsdl N.B : Le fichier WSDL est généré automatiquement en appelant http://hostname/service?wsdl afin de ne pas provoquer d'erreur après une mise en production Pour définir le mode (vhost d'apache) SetEnv APPLICATION_ENV "development" SetEnv APPLICATION_ENV "production" SetEnv APPLICATION_ENV "staging" En appelant l'url http://hostname/service, le contoller de l'application, "service" est automatiquement utiliser. Tout ce qui est visible dans la class est utilisé par le controller et se retrouve visible dans le service (wsdl, requête) Si des fonctions ne doivent pas être rendu visible il faut donc les séparer dans un autre controller utilisant une autre class. Documentation des méthodes et ajout spécial =========================================== La documentation est géneré en automatique. Voici comment définir simplement la documentation d'une méthode /** * Retourne les informations identitaires de l'entreprise ou de l'établissement demandé * @param string $key Siren de l'entreprise ou siret de l'établissement * @return Identite */ public function test($key) { } Attention ces informations servent aussi pour la structure du WSDL Pour spécifier un lien vers un fichier ou pour générer un fichier depuis une requête SQL à partir de la documentation du service. Ajouter dans le docblock : - Pour un fichier @ref fichier:libellé:{nom_du_fichier.ext} - Pour une requête SQL @ref mysql:libellé:{nom_du_fichier.sql} Les fichiers a télécharger sont à placer dans le répértoire public/fichier et les fichiers sql dans public/sql Pour spécifier des éléments de taille (non pris en compte sur le WSDL) @xsd minLength=9 @xsd maxLength=15 Configuration PHP ================= apt-get install php5-mysql apt-get install php-apc apt-get install php5-curl apt-get install php5-xmlrpc Paquet PEAR - Mail - Mail_Mime WKHTMLTOPDF =========== apt-get install libXrender1 apt-get install libfontconfig Configuration VHOST =================== a2enmod rewrite Exemple de vhost en mode développement <VirtualHost *:80> ServerName scoresws.sd.dev AddDefaultCharset utf-8 # Pour la gestion des ports : $_SERVER['SERVER_NAME'], $_SERVER['SERVER_PORT'] UseCanonicalName On UseCanonicalPhysicalPort On DocumentRoot "D:/www/webservice/public" SetEnv APPLICATION_ENV "development" <Directory "D:/www/webservice/public/"> DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^/favicon.ico$ [OR] RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L] </IfModule> </Directory> # Possible values include: debug, info, notice, warn, error, crit, alert, emerg. LogLevel debug ErrorLog "logs/scoresws.sd.dev-error.log" CustomLog "logs/scoresws.sd.dev-access.log" common </VirtualHost> Vhost réel <VirtualHost *:8081> ServerName wse.scores-decisions.com ServerAlias wse1.scores-decisions.com # Pour la gestion des ports : $_SERVER['SERVER_NAME'], $_SERVER['SERVER_PORT'] UseCanonicalName On UseCanonicalPhysicalPort On ServerSignature Off AddDefaultCharset utf-8 DocumentRoot /home/vhosts/webservice/public SetEnv APPLICATION_ENV "production" <Directory /home/vhosts/webservice/public/> DirectoryIndex index.php AllowOverride All Order allow,deny Allow from all <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_URI} ^/favicon.ico$ [OR] RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L] </IfModule> </Directory> # Possible values include: debug, info, notice, warn, error, crit, alert, emerg. LogLevel error ErrorLog /var/log/apache2/webservice-error.log CustomLog /var/log/apache2/webservice-access.log common </VirtualHost>