Construire un projet PHP
Ce que couvre ce guide
Ce guide couvre l'environnement de compilation et des sujets de configuration spécifiques pour des projets PHP. Assurez-vous de lire en premier notre guide de démarrage et le guide général de configuration de compilation.
Choisir les versions de PHP à tester
Les workers PHP sur travis-ci.org fournissent PHP 5.2, 5.3, 5.4, y compris XDebug ainsi que PHPUnit. Un fichier minimaliste .travis.yml ressemblerait à ceci:
language: php
php:
- 5.3
- 5.4
Travis lancera vos tests en utilisant ceci
phpunit
par défaut avec les dernières releases 5.3.x et 5.4.x. 5.3 et 5.4 sont des alias pour "les plus récentes releases x.y.z" de la ligne. Notez que "plus récente" signifie "tel que prévu par les mainteneurs de Travis", pas nécessairement la toute dernière version officelle de la release php.net. Pour une liste complète des versions supportées, voir À propos de Travis CI Environment.
A noter également que la spécification exacte des versions comme 5.3.8 est déconseillée, car votre fichier .travis.yml peut devenir obsolète et casser votre build quand nous mettrons à jour les versions de PHP sur Travis.
Par exemple, voir travis-ci-php-example .travis.yml.
Script de test par défaut
Par défaut Travis lancera vos tests en utilisant
phpunit
pour chaque version PHP que vous spécifiez.
Si votre projet utilise autre chose que PHPUnit, vous pouvez remplacer notre commande de test par défaut par ce que vous voulez.
Travaillez avec Atoum
Au lieu de PHPUnit, vous pouvez aussi utiliser Atoum pour tester vos projets. Par exemple:
before_script: wget http://downloads.atoum.org/nightly/mageekguy.atoum.phar
script: php mageekguy.atoum.phar
Gestion des dépendances (alias vendoring)
Avant que Travis ne lance votre suite de tests, il peut être nécessaire de récupérer les dépendances de votre projet. Cela peut être réalisé en utilisant un script PHP, un script Shell ou autre chose dont vous avez besoin. Définir une ou plusieurs commandes que vous voulez que Travis CI utilise avec l'option before_script dans votre .travis.yml, par exemple:
before_script: php vendor/vendors.php
ou, si vous avez besoin de lancez plusieurs commandes séquentielles:
before_script:
- ./bin/ci/install_dependencies.sh
- php vendor/vendors.php
Même si les dépendances installées seront éffacées entre les builds (Les VMs sur lesquelles nous lançons les tests sont snaphotted), merci d'être raisonable sur la quantité de bande passante et de temps qu'il faut pour les installer.
Plusieurs versions des dépendances (e.g. Symfony)
Si vous avez besoin de tester plusieurs versions de, disons, Symfony, vous pouvez demandez à Travis de faire de multiples passages avec différents ensembles ou valeurs de variables d'environnement. Utilisez la clef env dans votre fichier .travis.yml, par exemple:
env:
- SYMFONY_VERSION=v2.0.5
- SYMFONY_VERSION=origin/master
et ensuite utilisez les valeurs des variables ENV dans vos scripts d'installation de dépendances, les cas de test ou les scripts de test des paramètres de valeurs. Ici nous utilisons la valeur de la variable DB pour récuperer le fichier de configuration de PHPUnit:
script: phpunit --configuration $DB.phpunit.xml
La même technique est souvent utilisée pour tester des projets avec de multiples bases de données.
Pour voir de vrais exemples, voir FOSUserBundle, FOSRest and doctrine2.
Installation des paquets PEAR
Si vos dépendances inclus des paquets PEAR, l'environnement PHP Travis possède la commande Pyrus:
pyrus install http://phptal.org/latest.tar.gz
Après l'installation vous devez rafraichir votre path
phpenv rehash
Ainsi, par exemple lorsque vous voulez utiliser phpcs, vous devez executer:
pyrus install pear/PHP_CodeSniffer
phpenv rehash
Maintenant vous pouvez utiliser phpcs aussi simplement que la commande phpunit
phpcs
Installation des paquets Composer
Vous pouvez aussi installer des paquets Composer dans l'environnement PHP Travis. Utilisez les éléments suivants:
wget http://getcomposer.org/composer.phar
php composer.phar install
Installation des extensions PHP
Il est possible d'installer des extensions PHP personnalisées dans
l'environnement Travis, mais elles doivent être construites avec la même version
de PHP testée. Voici par exemple comment l'extension memcache peut être
installée:
wget http://pecl.php.net/get/memcache-2.2.6.tgz
tar -xzf memcache-2.2.6.tgz
sh -c "cd memcache-2.2.6 && phpize && ./configure --enable-memcache && make && sudo make install"
echo "extension=memcache.so" >> `php --ini | grep "Loaded Configuration" | sed -e "s|.*:\s*||"`
Voir aussi midgard2 utilisant pleinement before_script ainsi que l'installation du driver php mongo.
Livres de cuisine du chef pour PHP
Si vous voulez apprendre tous les détails de la façon dont nous construisons les installations et les multiples prestations PHP, voir notre php, phpenv et le livre de cuisine php-build du chef.
blog comments powered by Disqus