Go to file
2016-02-11 15:49:26 +00:00
application Correction chemin 2016-02-11 15:49:26 +00:00
data/pages/themes/default/styles Mise à jour des styles pour l'impression PDF et ecran 2015-01-29 16:15:40 +00:00
docs Use modules 2015-10-05 15:38:02 +00:00
library Streetview : test et validation 2016-02-08 10:22:43 +00:00
public OpenStreetMap 2016-02-08 14:33:50 +00:00
scripts Crontab : simplification 2016-01-13 09:03:58 +00:00
composer.json Correction case 2015-10-27 10:54:28 +00:00
composer.lock Update dependencies 2016-01-14 10:52:08 +00: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. 
 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.

Project Configuration
---------------------

	- Autoloader 
		See in the public/index.php. We use Classmpap Autloader which store Class Key and his file 
		path.
		To generate classmap file use bin/classmap_generator.php
	
	- 


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