15496c7e1a
Conflicts: application/modules/default/controllers/IdentiteController.php |
||
---|---|---|
application | ||
docs | ||
library | ||
public | ||
scripts | ||
.gitignore | ||
composer.json | ||
composer.lock | ||
TODELETE |
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 ============ 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 Set in apache vhost config file (mod_php) or in .user.ini (php-fpm) . 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 - 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]/ 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]/pages/imgcache [profil.path.shared]/pages/file/image/cache/q; ln -vsf [profil.path.shared]/persist/streetview [profil.path.shared]/pages/file/streetview/img/q; ln -vsf [profil.path.shared]/persist/logos [profil.path.shared]/pages/file/image/logo/q; ln -vsf [VHOST]/public/themes [profil.path.shared]/pages/themes; Apache configuration -------------------- => Development example <VirtualHost *:80> ServerName extranet.sd.dev SetEnv APPLICATION_ENV "development" AddDefaultCharset utf-8 DirectoryIndex index.php DocumentRoot /home/vhosts/extranet/public <Directory /home/vhosts/extranet/public/> EnableSendfile Off AllowOverride none Require all granted <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 ${APACHE_LOG_DIR}/extranet-error.log CustomLog ${APACHE_LOG_DIR}/extranet-access.log combined </VirtualHost> => Production configuration See in ansible project 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