Utiliser l'extension PHP Tideways dans Travis CI

Cet article a été publié depuis plus de 6 mois, cela signifie que le contenu peut ne plus être d'actualité.

Tideways est une extension PHP permettant d'ajouter le support du profiling. Le profiling est une activité qui consiste à collecter un certain nombre d'informations sur l'exécution d'un code (PHP dans notre cas). Tideways est en réalité la continuité de l'extension XHProf précédemment développé par Facebook, mais aujourd'hui abandonné au profit de HHVM. Le principale avantage de cette dernière est que l'extension est compatible avec les versions 7 de PHP.

L'extension PHP n'étant pas "standard", il n'est pas possible de l'activer directement dans Travis CI. Il sera donc nécessaire de télécharger, compiler et activer l'extension en amont de la phase de build. Pour cela, nous allons rajouter les commandes suivantes dans notre fichier .travis.yml :

# ...
before_scripts:
  # ...
  - wget -Otideways-php.tar.gz https://github.com/tideways/php-profiler-extension/archive/v4.1.1.tar.gz
  - tar xvfz tideways-php.tar.gz -C /tmp
  - cd /tmp/php-profiler-extension-4.1.1
  - phpize
  - ./configure
  - make
  # ...

Les commandes ci-dessus téléchargent les sources de l'extension, les décompressent dans le répertoire /tmp et les compilent. Une fois ces étapes, il ne reste plus qu'à activer l'extension auprès de PHP. Cela peut être fait en ajouter une ligne dans le fichier de configuration PHP :

echo "extension=/tmp/php-profiler-extension-4.1.1/modules/tideways.so" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini

Sinon il est possible si vous utilisez PHP via la ligne de commande d'activer l'extension à la volée via l'option -d :

php -dextension=/tmp/php-profiler-extension-4.1.1/modules/tideways.so vendor/bin/phpunit