11618454d8
Develop into master - confidentiel + autre See merge request !2 |
||
---|---|---|
application | ||
bin | ||
data/files/kbis/styles | ||
docs | ||
library | ||
public | ||
.gitignore | ||
composer.json | ||
composer.lock |
WebService ========== - Créer le vhost, voir le fichier VHOST pour les exemples <VirtualHost *:80> ServerName webservice.sd.dev AddDefaultCharset utf-8 <IfModule mod_xsendfile.c> XSendFile On XSendFilePath /home/vhosts/webservice/shared </IfModule> DocumentRoot /home/vhosts/webservice/public <Directory /home/vhosts/webservice/public/> EnableSendfile Off AllowOverride none Require all granted <Files ~ "^\.user.ini"> Order allow,deny Deny from all </Files> <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> <Directory /home/vhosts/webservice/public/assets/> <IfModule mod_rewrite.c> RewriteEngine Off </IfModule> </Directory> # Possible values include: debug, info, notice, warn, error, crit, alert, emerg. LogLevel error ErrorLog ${APACHE_LOG_DIR}/webservice-error.log CustomLog ${APACHE_LOG_DIR}/webservice-access.log combined </VirtualHost> - Installer les librairies avec composer $ composer install - Configurer l'application La config (fichier application.ini) est à placer dans "application/configs/" Exemple de la config dans "docs/config/application.ini" (Modifier selon les besoins) - APPLICATION_ENV Différent niveau peuvent être utilisé dans l'application pour gérer les erreurs et le comportement. production staging development testing Cette variable est accessible dans PHP. . mod_php Add in <VirtualHost/> SetEnv APPLICATION_ENV "development" . php-fpm Add a file in document root path (public/) a file .user.ini env[APPLICATION_ENV] = "development" See the .user.ini file - Créer les repertoires de données nécessaires [WORKSPACE]/data/webservice/ - cache - logs - sessions - wsdl - files - greffes 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