Chez PMSIpilot, nous commençons à utiliser Behat pour nos tests fonctionnels.
Je ne vais pas m’étendre sur toutes les belles choses que ce framework de bdd apportera au testing de votre projet, il vous suffit de vous rendre sur leur site officiel et de lire leur introduction rapide pour vous en persuader.
Le problème auquel j’ai immédiatement fait face en tentant d’inclure le Phar de Behat est le suivant :
Fatal error: require(): Failed opening required 'phar:///[...]/lib/vendor/behat/behat.phar'
La ligne incriminée ne pouvait pas être plus simple :
include 'phar:///[...]/lib/vendor/behat/behat.phar';
Après avoir interrogé dans toutes les langues et sous toutes les formes mon moteur de recherché préféré, difficile de trouver une explication rationnelle.
Comme souvent, la réponse est venue par l’intermédiaire d’un collègue (merci @jubianchi et @ratibus !) et il s’avère que c’est l’extension ioncube qui était en cause sur mon poste. Si vous avez ce problème, c’est donc peut-être une piste à suivre.
Pour tester si ioncube est activé :
$ php -i | grep -i ioncube
with the ionCube PHP Loader v4.0.5, Copyright (c) 2002-2011, by ionCube Ltd., and
ionCube Loader
Chez moi c’était la version ioncube 4.0.5 qui posait problème. Rassurez-vous néanmoins, une fois la dernière version de ioncube installée, plus de problème à noter ! Apparemment le problème est réglé au moins depuis la version 4.0.9.
Le lien direct pour télécharger la dernière version stable pour une distrib linux 32 bits : http://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
Une fois l’extension décompressée et placée au bon endroit, l’include passe sans encombre.
$ php -i | grep -i ioncube
with the ionCube PHP Loader v4.0.12, Copyright (c) 2002-2011, by ionCube Ltd., and
ionCube Loader