Go to file
2017-03-28 18:46:33 +02:00
application Change wsdl filename, pas de http en premier 2017-03-23 20:55:40 +01:00
bin Traitement des actes : simplification et envoi mail correct 2017-03-28 12:40:01 +02:00
data/files/kbis/styles Delete file include in ansible 2016-09-30 14:46:21 +02:00
docs Mise à jour et simplification de la documentation 2017-02-10 15:22:23 +01:00
library Fix "Call to a member function rowCount()" mais pas la cause 2017-03-28 18:46:33 +02:00
public Fix SQL by Yoann 2017-03-27 16:29:51 +02:00
.gitignore Move .user.ini 2016-06-01 16:34:43 +02:00
composer.json Add monolog/monolog 2017-01-31 15:41:35 +01:00
composer.lock composer update 2017-02-07 10:05:24 +01:00

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