164 lines
4.5 KiB
Plaintext
164 lines
4.5 KiB
Plaintext
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
|
|
|
|
|