195 lines
6.0 KiB
Plaintext
195 lines
6.0 KiB
Plaintext
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>
|
|
|
|
|
|
|
|
$db->getProfiler()->setEnabled(true);
|
|
$db->update( ... );
|
|
$query = $db->getProfiler()->getLastQueryProfile()->getQuery();
|
|
$queryParams = $db->getProfiler()->getLastQueryProfile()->getQueryParams();
|
|
$logger->log('SQL: ' . $db->quoteInto($query, $queryParams), Zend_Log::DEBUG);
|
|
$db->getProfiler()->setEnabled(false);
|