Developpement

Ce premier article sur le développement pour TYPO3 explique comment configurer son environnement. Les sections suivantes présentent les outils utilisés : PHPUnit, Xdebug, Zend Debugger et PhpStorm.

PHPUnit

PHPUnit est un framework pour la création de tests unitaires en PHP. Une extension du même nom ( phpunit) peut-être installée sous TYPO3 et donne accès à un module backend pour l’exécution et le rapport des tests comme le montre la copie d’écran suivante.

Installation

Dans TYPO3, installons l’extension PEAR Manager ( pear). Après la configuration initiale, enregistrons un nouveau canal pour PEAR, afin d’installer la dernière version de PHPUnit. Ce canal est

pear.phpunit.de

Puis dans la rubrique Package Management, installons phpunit/PHPUnit.

Nous pouvons désormais activer l’utilisation de la version PEAR de PHPUnit au niveau des options de configuration de l’extension phpunit, dans l’Extension Manager (option usepear).

Crash

J’ai été incapable d’utiliser PHPUnit car il me donnait systématiquement un écran vide et les logs d’Apache m’indiquaient un sysfault. En désactivant l’option alwaysSimulateFrontendEnvironment de cette extension, tout a ensuite fonctionné correctement et ce malgré ma tentative d’augmentation de memory_limit à 3 Go (!) dans php.ini.

En revanche, nul besoin de désactiver l’extension  phpmyadmin si vous l’utilisez.

Xdebug

Xdebug est une extension pour PHP qui permet de déboguer les scripts en fournissant un complément d’information important.

Par ailleurs, dans le cadre d’une méthodologie TDD ( Test-Driven Development ou développement piloté par les tests), il permet la génération de rapport de couverture de code.

L’installation sous Mac OS X 10.5 (Leopard) se déroule comme suit. La version utilisée (2.0.3) est celle d’avril 2008. Utilisez la dernière version stable disponible sur le site officiel  http://www.xdebug.org.

$ curl www.xdebug.org/files/xdebug-2.0.3.tgz -O
$ tar xzf xdebug-2.0.3.tgz
$ cd xdebug-2.0.3
$ phpize
$ CFLAGS='-arch x86_64' ./configure --enable-xdebug
$ make

Copions le binaire ainsi généré. Sur mon ordinateur, les bibliothèques PHP s’installent traditionnellement sous /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613 :

$ sudo cp modules/xdebug.so /usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/

Vous pouvez récupérer le répertoire pour votre installation avec la commande

# php -i | grep extension_dir

Maintenant il reste à charger cette bibliothèque avec PHP. Créons le fichier /usr/local/php5/php.d/50-extension-xdebug.ini :

zend_extension=/usr/local/php5/lib/php/extensions/no-debug-non-zts-20060613/xdebug.so

Vérifions que Xdebug se charge correctement dans la liste des extensions Zend :

$ php -m
[PHP Modules]


[Zend Modules]
Xdebug

Après redémarrage de Apache, un phpinfo(); devrait également vous lister Xdebug.

Une extension pratique pour Firefox :  Easy Xdebug.

Zend Debugger

Zend Debugger is an extension that may be run separately from their different Zend Servers, using your existing Apache + PHP system. It is freely available from  http://www.zend.com/en/products/studio/downloads.

Instruction to install it are pretty straightforward:

  1. Extract the Zend Debugger package
  2. Locate the ZendDebugger.so file in the directory which corresponds to your version of PHP (typically 5_2_x_comp or 5_3_x_comp)
  3. Copy the extension to the PHP extension directory:. On my computer (using MacPorts) PHP libraries are located in /opt/local/lib/php/extensions/no-debug-non-zts-20060626:
    $ php -i | grep extension_dir
    extension_dir => /opt/local/lib/php/extensions/no-debug-non-zts-20060626/
    $ sudo cp ZendDebugger.so $(php -i | grep extension_dir | sed 's/^.* => \(.*\)/\1/')
  4. Create file /opt/local/php5/php.d/50-extension-zenddebugger.ini or /opt/local/var/db/php5/zenddebugger.ini if using MacPorts:
    zend_extension=/opt/local/lib/php/extensions/no-debug-non-zts-20060626/ZendDebugger.so

    zend_debugger.allow_hosts=127.0.0.1
    zend_debugger.expose_remotely=always
  5. Copy package file dummy.php to your document root directory (in our case this is the root of our TYPO3 website, next to index.php or directory typo3conf)
  6. Restart your webserver

You should be able to debug your TYPO3 website using the Zend browser toolbar that is installed with Zend Studio:

Further Reading

Step-by-step debug session

  • Eclipse + PDT + XDebug [ Video]
Flattr