Draft:Conferences and Presentations Dolibarr: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
Line 18: Line 18:
=== Thèmes abordés ===
=== Thèmes abordés ===
Les thèmes abordés seront les suivants:
Les thèmes abordés seront les suivants:
* Thème 1: Sécurité
* Thème 1: Documentation technique
* Thème 2: Performances
* Thème 2: Accès aux données (DAO)
* Thème 3: Traduction
* Thème 3: Design pattern MVC et moteur de templates
* Thème 4: Portabilité
* Thème 4: Performances
* Thème 5: Documentation technique
* Thème 5: Traduction
* Thème 6: Accès aux données (DAO)
* Thème 6: Portabilité
* Thème 7: Design pattern MVC
* Thème 7: Sécurité
* Thème 8: Les templates de présentation
* Thème 8: Tests unitaires/non régression
* Thème 9: Tests unitaires/non régression


== Choix de l'exemple ==
== Choix de l'exemple ==
Line 37: Line 36:
Background du développement de l'application.
Background du développement de l'application.


== Thème 1: Bonnes pratiques PHP Documentation ==
* Pourquoi
-> Faciliter la maintenance et développement
* Comment
-> Tags et outils types Eclipse + Doxygen
* Résultat
-> Présentation de la documentation


== Thème 1: Bonnes pratiques PHP Sécurité ==
== Thème 2: Bonnes pratiques PHP Design pattern DAO ==
* Pourquoi  
* Pourquoi
-> Définition des dangers (Rappel du top 10 des dangers recensés par l'OWASP)
-> Banaliser le développement et maintenance
* Comment
* Comment
-> Danger OWASP 1  -> Solution PHP -> Exemple dans Dolibarr ERP/CRM
-> Présentation du générateur de DAO fait maison Dolibarr
* Résultat
-> Adhésion rapide au développement.


-> Danger OWASP 2  -> Solution PHP -> Exemple dans Dolibarr ERP/CRM
== Thème 3: Design pattern et moteur de templates (MVC by part versus MVC by file) ==
 
* Pourquoi
-> Danger OWASP n  -> Solution PHP -> Exemple dans Dolibarr ERP/CRM
-> Faciliter la lecture du code, maintenance
 
* Comment
-> Danger OWASP 10 -> Solution PHP -> Exemple dans Dolibarr ERP/CRM
-> Comparaison des Frameworks "MVC by file" (Smarty, ...) ou pratique Dolibarr "MVC by part" (controlleur et présentation séparés mais se suivant dans le même fichier)
* Résultat
Tableau comparatif
{| class="wikitable"
|Avantage/Inconvénient
|Moteur template (Smarty, ...)
|Template natif PHP (choix Dolibarr)
|--------
|Garantie "technique" isolation code/présentation
|oui
|non
|--------
|Maintenance
|Plus simple
|
|--------
|Evolutivité
|Plus fermé
|Plus souple
|--------
|Fonctionnalités
|
|
|--------
|Performances
|Moins bonne (attention aux annonces de "cache"). 120
|Base 100
|}
* Résultat
* Résultat
-> Pas de retour à offrir. Mais quand on parle de sécurité, n'est-ce pas en soit un bon bilan ?
-> Retour expérience sur Dolibarr:
Résultat en terme de performance sur Dolibarr
Résultat en terme de lisibilité
Abandon de templates Smarty au profit de templates ... PHP
-> Adhésion rapide au développement.


== Thème 2: Bonnes pratiques PHP Performances ==
== Thème 4: Bonnes pratiques PHP Performances ==
=== Firebug / Google Page Speed ===
=== Firebug / Google Page Speed ===
* Pourquoi
* Pourquoi
Line 85: Line 124:
-> Bilan gain des modifications faites sur Dolibarr.
-> Bilan gain des modifications faites sur Dolibarr.


== Thème 3: Bonnes pratiques PHP Traduction ==
== Thème 5: Bonnes pratiques PHP Traduction ==
* Pourquoi
* Pourquoi
-> Avoir un projet internationnalisé.
-> Avoir un projet internationnalisé.
Line 93: Line 132:
-> Résultat obtenus sur Dolibarr.
-> Résultat obtenus sur Dolibarr.


== Thème 4: Bonnes pratiques PHP Portabilité ==
== Thème 6: Bonnes pratiques PHP Portabilité ==
PHP est déjà un langage portable. Mais certain sujets requiert malgré tout une couche de portabilité supplémentaire.
PHP est déjà un langage portable. Mais certain sujets requiert malgré tout une couche de portabilité supplémentaire.
=== Base de données (iso/utf, mysql/postgresl/mssql) ===
=== Base de données (iso/utf, mysql/postgresl/mssql) ===
Line 142: Line 181:
-> Résolution des problème dus aux cookies homonymes des paramètres. Un souci technique de moins.
-> Résolution des problème dus aux cookies homonymes des paramètres. Un souci technique de moins.


== Thème 5: Bonnes pratiques PHP Documentation ==
== Thème 7: Bonnes pratiques PHP Sécurité ==
* Pourquoi
* Pourquoi  
-> Faciliter la maintenance et développement
-> Définition des dangers (Rappel du top 10 des dangers recensés par l'OWASP)
* Comment
* Comment
-> Tags et outils types Eclipse + Doxygen
-> Danger OWASP 1  -> Solution PHP -> Exemple dans Dolibarr ERP/CRM
* Résultat
-> Présentation de la documentation


== Thème 6: Bonnes pratiques PHP Design pattern DAO ==
-> Danger OWASP 2  -> Solution PHP -> Exemple dans Dolibarr ERP/CRM
* Pourquoi
-> Banaliser le développement et maintenance
* Comment
-> Présentation du générateur de DAO fait maison Dolibarr
* Résultat
-> Adhésion rapide au développement.


== Thème 7: Bonnes pratiques PHP Design pattern (MVC by part versus MVC by file) ==
-> Danger OWASP n  -> Solution PHP -> Exemple dans Dolibarr ERP/CRM
* Pourquoi
-> Faciliter la lecture du code, maintenance
* Comment
-> Comparaison des Frameworks "MVC by file" (Smarty, ...) ou pratique Dolibarr "MVC by part" (controlleur et présentation séparés mais se suivant dans le même fichier)
* Résultat
-> Adhésion rapide au développement.


== Thème 8: Bonnes pratiques PHP Templates de présentation ==
-> Danger OWASP 10 -> Solution PHP -> Exemple dans Dolibarr ERP/CRM
* Pourquoi
-> Pouvoir isoler le travail de design/présentation de celui du codage.
* Comment
-> Utilisation du moteur de templates externe ou PHP ?
Tableau comparatif
{| class="wikitable"
|Avantage/Inconvénient
|Moteur template (Smarty, ...)
|Template natif PHP (choix Dolibarr)
|--------
|Garantie "technique" isolation code/présentation
|oui
|non
|--------
|Maintenance
|Plus simple
|
|--------
|Evolutivité
|Plus fermé
|Plus souple
|--------
|Fonctionnalités
|
|
|--------
|Performances
|Moins bonne (attention aux annonces de "cache"). 120
|Base 100
|}
* Résultat
* Résultat
-> Retour expérience sur Dolibarr:
-> Pas de retour à offrir. Mais quand on parle de sécurité, n'est-ce pas en soit un bon bilan ?
Résultat en terme de performance sur Dolibarr
Résultat en terme de lisibilité
Abandon de templates Smarty au profit de templates ... PHP


== Thème 9: Autres sujets et bonnes pratiques PHP non abordés ==
== Thème 8: Autres sujets et bonnes pratiques PHP non abordés ==
Liste des autres sujets non abordés car non mise en œuvre dans l'exemple  
Liste des autres sujets non abordés car non mise en œuvre dans l'exemple  
* Génération de code (exemple ....)
* Génération de code (exemple ....)

Navigation menu