Outils de développement: Difference between revisions

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search
(stubs)
 
(31 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{TemplateDocDev}}
<!-- BEGIN interlang links -->
<!-- Do NOT edit this section
    Links below are automatically managed by PolyglotBot
    You can edit links on the English source page : Environment_and_development_tools -->
[[en:Environment_and_development_tools]]
[[es:Herramientas_de_Desarrollo]]
[[zh:开发环境与工具]]
<!-- END interlang links -->
 
{{TemplateDocDevFr}}


Tout environnement de développement peut être utilisé.
Tout environnement de développement peut être utilisé.
Toutefois voici une liste d'outils fortement recommandés pour leur complétude, leur qualité et la productivité du développement qu'ils apportent. Ils sont utilisés par la plupart des développeurs principaux de Dolibarr. Notons que toutes ces solutions sont gratuites et OpenSource.
Toutefois voici une liste d'outils fortement recommandés pour leur complétude, leur qualité et la productivité du développement qu'ils apportent. Ils sont utilisés par la plupart des développeurs principaux de Dolibarr. Notons que toutes ces solutions sont gratuites et OpenSource.


= [[File:Eclipsephp.jpg]] Pour tout développeur =
=[[File:Eclipsephp.jpg]] Pour tout développeur=


Voici le socle de travail recommandé, toutefois tout outil respectant les standards Web, PHP, Mysql peuvent faire l'affaire.
Voici le socle de travail recommandé, toutefois tout outil respectant les standards Web, PHP, Mysql peuvent faire l'affaire.


== Un serveur AMP ==
==Un serveur AMP==


* Apache, Mysql et PHP
*Apache, MariaDB et PHP


Sur Linux: Ces 3 produits sont disponibles dans toutes distributions.
Sur Linux: Ces 3 produits sont disponibles dans toutes distributions.


Sur Windows: Installez [http://www.wampserver.com/ WampServer 2] (base Mysql, Apache et PHP tout clé en main). Ce serveur WAMP offre le trio MySql+Apache+PHP, avec possibilité de basculer de version pour n'importe lequel de ces composants d'un simple clic).
Sur Windows: Installez [http://www.wampserver.com/WampServer] (base MariaDB, Apache et PHP tout clé en main). Ce serveur WAMP offre le trio MariaDB + Apache + PHP, avec possibilité de basculer de version pour n'importe lequel de ces composants d'un simple clic).
 
==Chrome ou Firefox et plugins==
 
*Chrome + plugins de votre choix
 
A télécharger depuis le site http://www.chrome.com
 
*Firefox + plugins de votre choix


== Firefox et plugins ==
* Firefox avec les plugins:
** Firebug + Firecookie + FirePHP,
** HTML Validator,
** Phplangeditor et les Dictionnaires des langues si vous compter traduire
** User agent switcher pour simuler des accès depuis un smartphone
** Selenium IDE
** Cert Viewer Plus si vous comptez faire des tests en HTTPS,
** QuickProxy si vous voulez basculer rapidement votre navigateur vers des utilitaires Proxy (WebScarab)...
A télécharger depuis le site http://www.firefox.com
A télécharger depuis le site http://www.firefox.com


== SquirrelSQL ==
==Un outil d'accès aux bases de données==
* SquirrelSQL pour l'administration de base
 
A télécharger depuis le site http://squirrel-sql.sf.net
Exemple:
 
*SquirrelSQL pour l'administration de base - A télécharger depuis le site http://squirrel-sql.sf.net
*DBeaver - https://dbeaver.io/
 
==IDE (Eclipse, VSCode) et plugins==
 
===Eclipse===


== Eclipse et plugins ==
====Installation d'Eclipse====
=== Installation d'Eclipse ===
Nous recommandons la version suivante d'Eclipse:
Nous recommandons la version suivante d'Eclipse:


Line 42: Line 56:
{{EclipseStandardSetup}}
{{EclipseStandardSetup}}


=== Installation du plugin Eclipse pour PHP: PDT. ===
====Installation du plugin Eclipse pour PHP: PDT.====
Avec certaines installations d'Eclipse, PDT peut etre installé depuis Help -> Install new software et choisir PDT.
Avec certaines installations d'Eclipse, PDT peut etre installé depuis Help -> Install new software et choisir PDT.
Si PDT n'est pas présent, si vous avez installé la version Eclipse ci-dessus, il suffit d'utiliser la procédure Help -> Install new software -> Add -> pour installer le package complémentaire:
Si PDT n'est pas présent, si vous avez installé la version Eclipse ci-dessus, il suffit d'utiliser la procédure Help -> Install new software -> Add -> pour installer le package complémentaire:
Line 48: Line 62:
{{DownloadEclipsePDT}}
{{DownloadEclipsePDT}}


=== Configurer Eclipse pour récupérer les sources ===
Une fois PDT installé, il faut aussi le configurer dans Eclipse comme défini dans le chapitre [[Outils_de_développement_-_Composants_optionnels#Depuis_Eclipse]].
 
====Configurer Eclipse pour récupérer les sources====
Une fois qu'Eclipse est installé, vous pouvez vous connecter au repository GIT pour y récupérer les dernières versions de développement.
Une fois qu'Eclipse est installé, vous pouvez vous connecter au repository GIT pour y récupérer les dernières versions de développement.


Pour cela, voir la page [[FAQ Récupérer, mettre à jours les sources GIT du projet]].
Pour cela, voir la page [[FAQ Récupérer, mettre à jours les sources GIT du projet]].


= [[File:Computer.png]] Optionnel =
===Codium===
 
== Si vous gérez d'autres projets sous SVN ==
* Installation du plugin SVN pour Eclipse: SubClipse.
Pour cela, utiliser la procédure '''Find And Install''' et ajouter l'URL de mise à jour:
 
http://subclipse.tigris.org/install.html
 
ou bien
* Installation du plugin SVN pour Eclipse: Subversive
http://community.polarion.com/projects/subversive/download/eclipse/2.0/ganymede-site/ - [required] Subversive SVN Connectors
 
http://community.polarion.com/projects/subversive/download/integrations/ganymede-site/ - [optional] Subversive Integrations
 
== Si vous désirez faire des scripts en Perl ==
* Installation du plugin Eclipse pour Perl: EPIC
Pour cela, utiliser la procédure '''Find And Install''' et ajouter l'URL de mise à jour: http://e-p-i-c.sourceforge.net/updates
 
== Si vous désirez développer des modules avec le générateur UML2Dolibarr ==
 
Une méthode pour générer un module fonctionnel depuis l'UML est en cours de mise au point.
Plus d'informations sur la page [[UML2Dolibarr - Générer un module par MDA]].
Pour l'utiliser, vous devez installer les composants suivants (si vous avez installé la version d'Eclipse recommandé plus haut, tout ceci est déjà fait):
 
* Installation de TopCased 1.4 ou +: http://www.topcased.org
 
* Installation d'acceleo 2.2.1 ou +: Pour cela, utiliser la procédure '''Find And Install''' et ajouter l'URL de mise à jour: http://www.acceleo.org/update/
 
* Installation d'UML2Dolibarr
Pour cela, récupérer les projets par la commande:
<source lang="bash">
svn checkout svn://svn.forge.objectweb.org/svnroot/acceleo/trunk/modules/community/uml21/dolibarr/trunk/
</source>
et les importer dans Eclipse.
 
== Si vous êtes sous Windows ==
 
* Notepad++ (pour ceux qui ne supportent pas java ou utilisent un vieux coucou trop faible pour Eclipse).
 
* WinMerge (pour la comparaison de fichiers ou répertoires)
 
* CygWin (pour la commande patch si vous préferez les lignes de commandes)
 
A noter que Netbeans-PHP fonctionne efficacement avec Dolibarr.
 
== Si vous désirez faire du debuggage pas à pas ou du tunning (XDebug) ==
 
* Pour ajouter des infos de tuning page sur la barre d'état du navigateur, ajouter la variable d'environnement DOL_TUNING à 1 dans Apache. Pour cela, inclure la ligne suivante dans votre fichier apache.conf:
<source lang="ini">
SetEnv DOL_TUNING 1
</source>
Enuite, vérifier que votre navigateur n'a pas d'option pour bloquer la modification de la barre de tache par le javasscript.
 
* Pour du tuning à la ligne de code près, installer XDebug:
=== [[File:Logo_windows.png|24px]] In Windows ===
* Télécharger le fichier dll '''php_debug_xxx.dll''' sur http://www.xdebug.org et stocker le dans le répertoire /ext de php. Ensuite activer le plugin.
 
* Modifier le ficiher php.ini ou xdebug.ini pour ajouter le paramètres suivant:
<source lang="ini">
[xdebug]
xdebug.remote_enable=on
xdebug.remote_handle=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.show_local_vars=off
xdebug.profiler_output_dir=c:/temp
xdebug.profiler_append=0
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1
</source>
 
=== [[File:Logo_ubuntu.png|24px]] In Ubuntu / Linux ===
* Installer le package '''php-xdebug''':
<source lang="bash">
sudo apt-get install php5-xdebug
</source>
 
* Modifier xdebug.ini pour ajouter les parmètres suivants après les lignes de type zend_extension=xxx (ou similaire):
<source lang="ini">
; With xdebug 2.1 and more
xdebug.remote_enable=on
xdebug.remote_handle=dbgp
xdebug.remote_host=localhost
xdebug.remote_port=9000
xdebug.show_local_vars=off
xdebug.profiler_output_dir=/var/tmp
xdebug.profiler_append=0
xdebug.profiler_enable=0
xdebug.profiler_enable_trigger=1
; Add also this for xdebug 2.2 and more
xdebug.show_mem_delta=1
xdebug.trace_output_dir=/var/tmp
xdebug.auto_trace=0
xdebug.trace_enable_trigger=1
</source>


=== [[File:Eclipsephp.jpg|24px]] Eclipse configuration ===
Codium est la version Libre de VSCode, la documentation suivante s'appliquera donc probablement à vscode.
* Ouvrir Eclipse. Dans Window->Preferences->General->Web Browser, sélectionner navigateur externe, et choisir le navigateur par défaut de votre système.


* Aller dans la rubrique Window->Preferences->PHP->Debug, et positionner les options PHP Debugger à XDebug. Remarquer que la case “Stop a la première ligne” sur cette page doit également être active. Vous pourrez la modifier plus tard.
====Modules complémentaires====


* Après avoir validé les changements, aller dans la vue PHP Debug prespective, puis aller dans le menu Debug Configurations… Ici, vérifier que le Server Debugger est positionné à XDebug, et que votre server PHP pointe sur http://localhost/ ou le chemin approprié au serveur. La zone de localisation des fichiers doit de plus pointer sur le fichier à débugger, relativement à votre workspace. Ce chemin doit être quelquechose comme /dolibarr/htdocs/index.php.
Voici la liste des modules complémentaire conseillés:


* Vérifiez la section URL pour voir si elle pointe correctement – si non, vérifier que la case “Auto-Generate” est bien décochée, et entrer manuellement le bon chemin. Appliquer les changement et fermer la fenêtre de dialogue.
*[https://open-vsx.org/extension/bmewburn/vscode-intelephense-client PHP Intelephense]
*phpdoc-comment
*PHPUnit
*[https://open-vsx.org/extension/junstyle/php-cs-fixer PHP CS Fixer]
*[https://open-vsx.org/extension/EditorConfig/EditorConfig EditorConfig for VSCode] pour que la configuration du projet définie dans le fichier .editorconfig soit utilisée automatiquement
*[https://open-vsx.org/extension/mhutchie/git-graph Git Graph]
*[https://open-vsx.org/extension/xdebug/php-debug PHP Debug] pour utiliser XDebug directement dans Codium


* Vous devriez maintenant être prêt pour lancer du debug de Dolibarr. Cliquer sur Run->Debug ou F11 pour activer le debug, Eclipse devrait basculer sur la vue Debug, et la page devrait commencer à se charger dans le navigateur externe. Si la case “Break at First Line” a bien été cochée précédemment, alors le programme aura stoppé à la première ligne. Vous pouvez alors faire du pas à pas sur les lignes de code successives en utilisant les boutons de la barre de Debug d'Eclipse. Eventuellement, vous pouvez placer des point d'arrêts à différents endroits du code pour y stopper l'exécution du code.
====Stubs ou extraits de codes====


Si vous développez des modules complémentaires pour dolibarr vous apprécierez d'avoir les définitions des fonctions et autres objets de dolibarr sans avoir à sourcer l'arborescence complète de dolibarr...


Ensuite pour analyser les fichiers de profiling générés par XDebug, il faut appeler l'url avec XDEBUG_PROFILE=1 pour générer le fichier profiling puis installer KCacheGrind (Linux) ou WinCacheGrind (Windows) pour l'analyser.
Tout ceci se passe par la récupération des stubs depuis https://packagist.org/packages/caprel/dolibarr-stubs-all.


== Pour développer ou utiliser les contrôles Qualité (PHPUnit, PHPCodeSniffer, PHPCpd, PHPDepends) ==
Une fois le stub téléchargé / ou installé en suivant la doc pensez à ajouter le fichier dolibarr-stubs dans la liste des stubs de votre codium, éditez le fichier ~/.config/VSCodium/User/settings.json
=== Depuis Eclipse ===
"intelephense.stubs": [
La meilleure méthode est d'installer les PHP Tools integration (PTI) pour Eclipse, en utilisant l'URL suivante via l'interface d'installation de plugins Eclipse:  
  "apache",
  "intl",
  "standard",
  "/media/erics/stockage/tmp/dolibarr/stubs",
],
"intelephense.environment.includePaths": [
  "/media/erics/stockage/tmp/dolibarr/stubs",
],
<br />


http://www.phpsrc.org/eclipse/pti/
===VSCode===


En faisant cela, l'installation et l'exécution de tests PHPUnit ou des autres outils est directement intégré à votre Eclipse.
===={{DownloadVSCode}}====


Modifier la configuration dans Eclipse (Windows-Preferences-PHPTools-PHPCodeSniffer) pour ajouter un répertoire de standard vers '''dev/codesniffer'''.
==Git Hooks==


Modifier la configuration dans Eclipse (Windows-Preferences-PHPTools-PHPUnit) comme sur la copie écran suivante (cliquer pour zoomer):
===Installer le hook git Pre-commit===


[[File:Eclipse setup PHPUnit.png|100px]]
Vous pouvez utiliser des hooks git pour vérifier la syntaxe du fichier que vous validez et annuler (ou mieux corriger automatiquement) la validation si quelque chose ne va pas.


Si vous n'installez pas PTI, il faut réaliser une installation et exécution en manuel en ligne de commande.
Les instructions pour installer un tel hook de pré-validation sont disponibles sur ce fichier :


=== En ligne de commande manuelle ===
https://github.com/Dolibarr/dolibarr/tree/develop/dev/setup/pre-commit
==== Installer PHPUnit ====
* Télécharger l'archive de la version sur http://pear.phpunit.de/get/ et dézipper le contenu dans un répertoire inclus dans le paramètre include_path de votre fichier de configuration php.ini.
* Préparer le script phpunit:
** Sur Linux: Renommer le script phpunit.php script en phpunit et remplacer la chaine @php_bin@ dans ce fichier avec le chemin complet de la ligne de commande de l'interpréteur PHP (en général /usr/bin/php).
** Sur Windows: Remplacer la chaine @php_bin@ dans le fichier phpunit.bat avec le chemin complet de la ligne de commande de l'interpréteur PHP et remplacer la chaine @bin_dir@ avec le répertoire de PHPUnit.
** Modifier votre PATH pour inclure le répertoire contenant phpunit.
** Donner les permissions de s'exécuter (chmod +x phpunit sur Linux).
* Préparer le script PHPUnit/Util/PHP.php:
** Remplacer la chaine @php_bin@ dans ce fichier avec le chemin complet de la ligne de commande de l'interpréteur PHP (en général /usr/bin/php).
* Le module xdebug est également requis si vous voulez faire du reporting de couverture de tests.


==== Exécuter les tests PHPUnit ====
* Aller dans le répertoire '''/test''' des sources. Reportez vous au fichier '''README''' pour connaitre la procédure pour lancer une campagne de tests.


==== Installer les autres outils ====
De tels hooks fonctionneront lors d'une utilisation en ligne de commande, mais peuvent également fonctionner lors d'une validation à l'aide de votre IDE commun (il a été validé avec Eclipse et VSC).
* Référez vous à la documentation des différents outils (PHPCodeSniffer, PHPCpd, PHPDepends) pour leur installation et utilisation en ligne de commande.


== Pour développer ou utiliser les tests Selenium ==
Une fois installé, le hook démarrera lors de votre prochain commit pour reformater votre code, afin que votre code corresponde toujours aux règles de syntaxe de codage. Si tout le monde active ce hook, tout le monde utilisera la même règle de syntaxe de codage, il est donc fortement recommandé de l'activer si vous le pouvez. Si quelque chose ne va pas dans la syntaxe, la validation sera immédiatement annulée. S'il peut être corrigé automatiquement, phpcbf, installé lors de l'installation du hook de pré-validation, le corrigera donc il vous suffira de réessayer le commit une seconde fois pour le valider.
=== Depuis Firefox ===
==== Installer le plugin pour Firefox Selenium IDE ====
* Télécharger le fichier du plugin Selenium IDE pour Firefox.
* L'ajouter dans Outils - Modules complémentaires de Firefox.


==== Exécuter les tests Selenium ====
'''ATTENTION<span> </span>: SUR MACOS, UN COMMIT INCLUANT DES FICHIERS DE LANGUE EMPÊCHERA LE FONCTIONNEMENT DE PRE-COMMIT'''
* Aller dans le menu Outils - Selinum IDE de firefox.
* Ouvrir le fichier de tests xml
* Executer le test.


== Pour générer la documentation Doxygen ==
=[[File:Computer.png]] Optionnel=
* Installer Doxygen disponible sur http://www.doxygen.org (ou par le package doxygen sous Ubuntu).  
Vous pouvez aussi installer des composants optionnels pour avoir le support de technologies suplémentaires.
* Installer le plugin Eclipse en ajoutant l'url source http://download.gna.org/eclox/update/ dans l'outil de mise à jour Eclipse puis configurer Eclipse pour indiquer l'emplacement de Doxygen (Window-Preferences-Doxygen).
Voir la page [[Outils de développement - Composants optionnels]].

Latest revision as of 13:35, 20 April 2026


Tout environnement de développement peut être utilisé. Toutefois voici une liste d'outils fortement recommandés pour leur complétude, leur qualité et la productivité du développement qu'ils apportent. Ils sont utilisés par la plupart des développeurs principaux de Dolibarr. Notons que toutes ces solutions sont gratuites et OpenSource.

Eclipsephp.jpg Pour tout développeur

Voici le socle de travail recommandé, toutefois tout outil respectant les standards Web, PHP, Mysql peuvent faire l'affaire.

Un serveur AMP

  • Apache, MariaDB et PHP

Sur Linux: Ces 3 produits sont disponibles dans toutes distributions.

Sur Windows: Installez [1] (base MariaDB, Apache et PHP tout clé en main). Ce serveur WAMP offre le trio MariaDB + Apache + PHP, avec possibilité de basculer de version pour n'importe lequel de ces composants d'un simple clic).

Chrome ou Firefox et plugins

  • Chrome + plugins de votre choix

A télécharger depuis le site http://www.chrome.com

  • Firefox + plugins de votre choix

A télécharger depuis le site http://www.firefox.com

Un outil d'accès aux bases de données

Exemple:

IDE (Eclipse, VSCode) et plugins

Eclipse

Installation d'Eclipse

Nous recommandons la version suivante d'Eclipse:

https://eclipse.org/pdt/

Sinon toute version disponible sur le site Eclipse fait l'affaire.

Une fois Eclipse installé, il est recommandé de modifier/vérifier les paramètres suivants:

  • Window - Preferences - General - Workspace - Text file encoding -> UTF8
  • Window - Preferences - General - Workspace - New text file line delimiter -> Unix
  • Window - Preferences - General - Compare/Patch - Ignore white spaces -> Yes
  • Window - Preferences - General - Editor - Text editors - Tab delimiter length -> 4
  • Window - Preferences - General - Editor - Text editors - Insert spaces for tab -> No
  • Window - Preferences - General - Editor - File Association -> Add *.lang associated to "Text Editor"
  • Note: You can also disable Windows - Preferences - Java - Editor - Content Assist - Auto Activation

And if PDT is installed (see later):

  • Window - Preferences - PHP - Code Style - Formatter - Tab policy -> Tab
  • Window - Preferences - PHP - Code Style - Formatter - Default indentation for wrapped line -> 1
  • Window - Preferences - PHP - Code Style - Formatter - Default indentation for array initializer -> 0
  • Window - Preferences - PHP - Editor - Typing - Uncheck "When Pasting Adjust Indentation" (keeping this option checked create corruption of text files by adding bad end of line characters)
  • Window - Preferences - PHP - Code Style - Formatter - Use the profile provided into dev/setup/eclipse/PSR-12 [built-in].xml as Eclipse syntax formatter.
  • Note: You can also disable Windows - Preferences - PHP - Editor - Content Assist - Auto Activation

Installation du plugin Eclipse pour PHP: PDT.

Avec certaines installations d'Eclipse, PDT peut etre installé depuis Help -> Install new software et choisir PDT. Si PDT n'est pas présent, si vous avez installé la version Eclipse ci-dessus, il suffit d'utiliser la procédure Help -> Install new software -> Add -> pour installer le package complémentaire:

https://download.eclipse.org/releases/xxx - xxx = version

Or from the GUI of any Eclipse =>Install New Software =>Work With Kepler => Wait until list display =>General Purpose Tools Check PHP development tools (PDT)=>Install

Une fois PDT installé, il faut aussi le configurer dans Eclipse comme défini dans le chapitre Outils_de_développement_-_Composants_optionnels#Depuis_Eclipse.

Configurer Eclipse pour récupérer les sources

Une fois qu'Eclipse est installé, vous pouvez vous connecter au repository GIT pour y récupérer les dernières versions de développement.

Pour cela, voir la page FAQ Récupérer, mettre à jours les sources GIT du projet.

Codium

Codium est la version Libre de VSCode, la documentation suivante s'appliquera donc probablement à vscode.

Modules complémentaires

Voici la liste des modules complémentaire conseillés:

Stubs ou extraits de codes

Si vous développez des modules complémentaires pour dolibarr vous apprécierez d'avoir les définitions des fonctions et autres objets de dolibarr sans avoir à sourcer l'arborescence complète de dolibarr...

Tout ceci se passe par la récupération des stubs depuis https://packagist.org/packages/caprel/dolibarr-stubs-all.

Une fois le stub téléchargé / ou installé en suivant la doc pensez à ajouter le fichier dolibarr-stubs dans la liste des stubs de votre codium, éditez le fichier ~/.config/VSCodium/User/settings.json

"intelephense.stubs": [
 "apache",
 "intl",
 "standard",
 "/media/erics/stockage/tmp/dolibarr/stubs",
],
"intelephense.environment.includePaths": [
 "/media/erics/stockage/tmp/dolibarr/stubs",
],


VSCode

Voir les instructions d'installation de l'éditeur.

Git Hooks

Installer le hook git Pre-commit

Vous pouvez utiliser des hooks git pour vérifier la syntaxe du fichier que vous validez et annuler (ou mieux corriger automatiquement) la validation si quelque chose ne va pas.

Les instructions pour installer un tel hook de pré-validation sont disponibles sur ce fichier :

https://github.com/Dolibarr/dolibarr/tree/develop/dev/setup/pre-commit


De tels hooks fonctionneront lors d'une utilisation en ligne de commande, mais peuvent également fonctionner lors d'une validation à l'aide de votre IDE commun (il a été validé avec Eclipse et VSC).

Une fois installé, le hook démarrera lors de votre prochain commit pour reformater votre code, afin que votre code corresponde toujours aux règles de syntaxe de codage. Si tout le monde active ce hook, tout le monde utilisera la même règle de syntaxe de codage, il est donc fortement recommandé de l'activer si vous le pouvez. Si quelque chose ne va pas dans la syntaxe, la validation sera immédiatement annulée. S'il peut être corrigé automatiquement, phpcbf, installé lors de l'installation du hook de pré-validation, le corrigera donc il vous suffira de réessayer le commit une seconde fois pour le valider.

ATTENTION : SUR MACOS, UN COMMIT INCLUANT DES FICHIERS DE LANGUE EMPÊCHERA LE FONCTIONNEMENT DE PRE-COMMIT

Computer.png Optionnel

Vous pouvez aussi installer des composants optionnels pour avoir le support de technologies suplémentaires. Voir la page Outils de développement - Composants optionnels.