README
======
- Project
- System Requirements
- Installation
- Library
- Translate
Note : Project are define to be use on Linux Server, so take care about path and file name.
Also some script (CLI) don't work on Windows.
PROJECT
=======
This application is a frontend for the WebService and it's display information graphically.
SYSTEM REQUIREMENTS
===================
- Apache 2.2
- PHP 5.3.x
- APC
- Chartdir library
- browscap.ini (http://tempdownloads.browserscap.com/, http://browscap.org/)
- wkhtmltopdf (http://code.google.com/p/wkhtmltopdf/)
INSTALLATION
============
See the file scripts/build/configure.php
On server this script is automatically called with the install option.
configure.php --install
Each servers are reference with a directory, name as the hostname, in config dir and all configure
file is list here
Environment configuration
-------------------------
- Variables
Define application environment in the vhost. This mode activate special features and debugging mode.
SetEnv APPLICATION_ENV "production" => Production
SetEnv APPLICATION_ENV "staging" => Recette
SetEnv APPLICATION_ENV "development" => Developpement
- Static/Global Storage
data/asso
data/association
data/bilanclient
data/bodacc
data/courrier
data/giant
data/greffes
data/groupes
data/iris
data/log
data/logos
data/marques
data/nouveautes
data/wkhtml
- Temporary storage
[projet]/data/
cache
files
infogreffe
log
pages
rss
sessions
wsdl
Apache configuration
--------------------
=> Development example
<VirtualHost *:80>
ServerName extranet.sd.dev
AddDefaultCharset utf-8
DocumentRoot "WORKSPACE/extranet/public"
SetEnv APPLICATION_ENV "development"
<Directory "WORKSPACE/extranet/public/">
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/extranet-error.log"
CustomLog "logs/extranet-access.log" common
</VirtualHost>
=> Production configuration
See VHOST file
PHP Configuration
-----------------
File upload
-----------
post_max_size = 50M
file_uploads = On
upload_max_filesize = 40M
max_file_uploads = 10
Session
-------
On sharing plateform, these parameters must be specified to the best value for all web application
session.gc_maxlifetime = 86400
session.cookie_lifetime = 86400
Application must override the session.save_path, soap.wsdl_cache_dir to define it's own path.
WKHTMLTOPDF
-----------
- Get the static version of wkhtmltopdf
- On Ubuntu :
sudo apt-get install libxrender1 libfontconfig
- Set execution flag (chmod +x)
- Test on command line
Page Break with WkhtmlToPdf :
In print CSS use all theses page-break-* properties
page-break-before,
page-break-after
Auto Pas de règle particulière en ce qui concerne les sauts de page.
Always Force un saut de page systématiquement avant ou après l'élément.
Avoid Evite dans la mesure du possible un saut de page avant ou après l'élément.
Left Définit que le prochain saut de page se fera sur la page de gauche.
Right Définit que le prochain saut de page se fera sur la page de droite.
Inherit Valeur identique à celle de l'élément parent.
page-break-inside
Auto Pas de règle particulière en ce qui concerne les sauts de page.
Avoid Evite dans la mesure du possible un saut de page au milieu l'élément.
Inherit Valeur identique à celle de l'élément parent.
WebService
----------
Partners
--------
LIBRARY
=======
TRANSLATE
=========
1. Creating PO file
--------------------
To create a PO file for different applications, first we need to download and install poedit,
here is the download link http://www.poedit.net/download.php
2. Set the poedit preferences
-----------------------------
File->Preferences : Fill fields to set our identies
tab Parsers, edit PHP settings, in the list of extension add *.phtml
3. Open a po file
------------------
PO file configuration for each project. As project as to be share use path that could work everywhere.
Catalogue->Properties, Set the Base paht to "../../" (to read under the whole project, if po
files is located under PROJECT/application/languages/)
Add supplemental paths to look in (application, library,....)
Add more precise search string by configuring in the Sources keywords these items
translate
_
setLabel
setValue
setMessage
setLegend
_refresh
append
prepend
In PHP source embrace all strings only with these functions.
Gestion des sessions
====================
Pour la gestion des sessions, il est nécessaire de faire une configuration spéciale afin d'éviter
les conflits entre les différents vhosts.
Les sessions sont stockées dans le même repertoire, les valeurs gc_maxlifetime, cookie_lifetime
définissent les limites de validité des sessions.
Il faut savoir que chaque modification faites par chaque application, dans chaque vhosts modifie le
fonctionnement général de PHP.
Pour eviter d'avoir des conflits sur la gestion des sessions, nous stockons les sessions dans un
répertoire définit.
Voir la configuration dans le fichier application.ini
resources.session.save_path = APPLICATION_PATH "/../cache/sessions"
resources.session.gc_maxlifetime = 86400
resources.session.cookie_lifetime = 86400
resources.session.remember_me_seconds = 86400
Debuggage
=================
Firebug et ChromePHP sont disponible.
Voir dans le fichier Bootstrap pour activer ou non le debuggage.
CONFIGURATION APC
=================
apc.cache_by_default = On
apc.enable_cli = Off
apc.enabled = On
apc.shm_size = 60
apc.max_file_size = 1M
apc.include_once_override = On
apc.stat = Off
apc.stat_ctime = Off
apc.shm_size : Taille du cache en Mo.
apc.num_files_hint : La valeur du nombre maximum de fichiers à cacher est conseillée.
apc.user_entries_hint : La valeur du nombre maximum d'entrées utilisateur
(cache utilisateur) à stocker est conseillée.
Il n'est pas conseillé de tenter de leurrer APC en doublant (par exemple)
ces valeurs. APC double déja en interne les valeurs spécifiées, et le gain en
performances est fortement réduit avec des valeurs non adaptées.
apc.stat : Se base sur les dates de modifications pour recharger le fichier
apc.stat_ctime : Se base sur les dates de création pour recharger le fichier
apc.max_file_size : Restriction sur la taille maximum d'un fichier à cacher.
Ceci peut créer des problèmes de performance lors de la demande en cache de ces
fichiers-là, mais si la mémoire est limitée, l'option demeure intéressante
apc.filters : Expression régulière utilisée pour exclure tout fichier dont le
nom a une correspondance.
apc.cache_by_default : Inverse la tendance de apc.filters : APC cachera
uniquement les fichiers qui ont une correspondance sur le filtre, au lieu de les ignorer.
apc.cache_by_default = Off
apc.filters = "+\.php$"
Dans le vhosts d'apache :
php_flag apc.cache_by_default On