Go to file
2016-12-15 11:04:01 +01:00
application utiliser la methode Scores_Ws_Client 2016-12-15 11:04:01 +01:00
docs Update documentation 2016-10-25 15:55:26 +02:00
library ajouter la methodes getListEtablissement 2016-12-15 11:02:35 +01:00
public Add better style for printing 2016-10-25 15:43:32 +02:00
scripts Etc file move to ansible 2016-10-25 15:57:22 +02:00
.gitignore Move .user.ini in public 2016-08-30 17:20:46 +02:00
composer.json Update 2015-10-27 10:57:40 +00:00
composer.lock Update Zend Framework to version 1.12.20 2016-09-09 09:55:01 +02:00
TODELETE Composer, Nettoyage 2015-09-25 12:38:03 +00:00

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. 


PROJECT
=======
	
	This application is a frontend for the WebService and it's display information graphically.


SYSTEM REQUIREMENTS
===================

 - Apache 2.4
 - PHP 5.5.x
 - Chartdir library
 - browscap.ini (http://tempdownloads.browserscap.com/, http://browscap.org/)
 - wkhtmltopdf (http://wkhtmltopdf.org/)


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
 
 - Persistent Storage 
	
	[profil.path.shared]/persit/
		asso
		association
		bilanclient
		bodacc
		courrier
		giant
		greffes
		groupes
		iris
		log
		logos
		marques
		nouveautes
		wkhtml 
 
 - Temporary storage
	 
	 [profil.path.shared]/temp/
		cache
	    files
	    sessions
	    wsdl
	    pages/file/image/logo
	    pages/file/image/cache
	    pages/file/streetview/img
	    pages/imgcache

 - Printing symbolic links
 	
 	ln -vsf [profil.path.shared]/temp/pages/imgcache [profil.path.shared]/temp/pages/file/image/cache/q;
	ln -vsf [profil.path.shared]/persist/streetview [profil.path.shared]/temp/pages/file/streetview/img/q;
    ln -vsf [profil.path.shared]/persist/logos [profil.path.shared]/temp/pages/file/image/logo/q;
	ln -vsf [VHOST]/publis/themes [profil.path.shared]/temp/pages/themes;


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.

Project Configuration
---------------------
	See docs/application.ini, sample config

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.
	

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