Comme l'architecture web fait intervenir de multiples serveurs, l'exécution en mode pas-à-pas nécessite la mise en œuvre d'un logiciel intermédiaire supplémentaire. En effet, il faut bien un outil qui permette de commander les opérations à distance.
Sur le marché, il existe deux outils : Zend debugger et XDebug. Nous utiliserons le second qu'il faut activer, paramétrer et lier à notre IDE :
Tout d'abord, il faut disposer de la librairie XDebug dans le sous-dossier ext de PHP. Le fichier se nomme php_xdebug.dll et il est à choisir selon la version de PHP. Voir vos ressources sur le Bureau Windows.
Ensuite, il faut ajouter les lignes suivantes à la fin du fichier .\xampp\php\php.ini que l'on peut atteindre via le Control Panel de Xampp (bouton Config d'Apache) :
[XDebug] zend_extension=xdebug xdebug.start_with_request=trigger xdebug.mode=debug xdebug.client_host=localhost xdebug.client_port=9003 xdebug.idekey="netbeans-xdebug"
Il est nécessaire de redémarrer Apache pour prendre en compte la nouvelle configuration.
A titre de vérification, on pourra aller dans le Dashboard de Xampp et afficher PHPInfo. Dans la page de résultat, la recherche de XDebug doit mener à une indication de son n° de version. Le paramétrage qui précède vaut pour une version 3 de XDebug. Pour une version 2, il faut un autre paramètrage.
NetBeans est capable d’accepter différents clients SVN du moment qu’ils fournissent un fonctionnement en « mode commande » (CLI) ou JavaHL. Soit le client est mis en place dans un dossier standard que NetBeans trouvera seul et il n’y aura rien à faire, soit il est positionné dans un dossier que NetBeans ne trouve pas seul et il faudra alors dans les paramètres de l’IDE indiquer la localisation du client SVN (Tools / Options / Team / Versioning / Subversion / Path to SVN executable file).
Dans NetBeans, les fonctionnalités de versioning sont accessibles au travers :
Une fois la copie de travail extraite, on intervient sur ce projet comme sur tout projet dans l’IDE. Les opérations de versioning sont accessibles par clic droit dans le menu Subversion. On peut librement choisir d’appliquer ces opérations, soit au projet entier, soit à un dossier seulement, soit à un fichier isolé, selon l’objet sur lequel on applique le clic droit.
Le lien suivant décrit les mises en forme, codes couleurs et icônes qui sont utilisés dans NetBeans pour éclairer l’état des différents fichiers d’un projet au regard du versioning :
https://netbeans.apache.org/kb/docs/ide/subversion.html#_editing_sources
Pour générer l'auto-documentation du code en environnement PHP, il faut disposer d'un outil dédié hors NetBeans. Pour cela, phpDocumentor est conseillé. Ce produit se présente sous la forme d'un fichier PHAR (PHP Archive) et il suffit d'indiquer à NetBeans où le trouver :
A partir de là, le menu contextuel du projet “Générer la documentation” sera pleinement opérant et la documentation sera produite dans un dossier qu'il reste à indiquer à la demande.
Pourtant, en l'état, sur un projet CodeIgniter (ou tout autre framework), l'auto-documentation s'opérera sur l'ensemble du projet. Y compris les sources du framework. Pour limiter au strict nécessaire, on pourra s'appuyer sur un fichier de configuration à nommer phpdoc.dist.xml et à placer à la racine du projet sur la base de l'exemple suivant :
<?xml version="1.0" encoding="UTF-8" ?> <phpdocumentor configVersion="3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://www.phpdoc.org" xsi:noNamespaceSchemaLocation="https://docs.phpdoc.org/latest/phpdoc.xsd" > <title>phpDocumentor</title> <paths> <output>.phpdoc</output> </paths> <version number="latest"> <api> <ignore hidden="true" symlinks="true"> <path>system/**/*</path> <path>app/Config/**/*</path> </ignore> <extensions> <extension>php</extension> </extensions> </api> </version> <setting name="graphs.enabled" value="false" /> </phpdocumentor>
Dans ce fichier de configuration, éventuellement à adapter, le dossier de stockage de la documentation est placé à la racine du projet et il est nommé .phpdoc. Le nom du dossier commençant par un point, il sera ignoré par le versioning. Ce qui est une bonne idée.
Enfin, pour que le fichier XML soit pris en compte, il faut indiquer sa présence dans les propriétés du projet dans l'onglet Documentation.