Bonjour à tous,

je teste l'intégration en continu avec Travis CI pour le plugin media mais je suis confronté à une erreur que je n'arrive pas à comprendre...
En testant sous PHP 5.4 et 5.5, j'ai une erreur assez bizarre qui apparait. En effet, j'ai ceci :

Parse error: syntax error, unexpected '.', expecting ']' in /home/travis/build/Romano83/CakePHP3-Media/tests/Fixture/MediasFixture.php on line 126

Or, si je regarde à cette ligne, j'ai ceci :

'file' => 'img' . DS . 'upload' . DS . '2015' . DS . '08' . DS . 'testHelper.png',

J'avoue que je ne comprends pas pourquoi le point de concatenation est reconnu comme une erreur sous PHP5.4 et PHP5.5 alors que ça passe avec PHP5.6.
De mémoire, j'ai déjà utilisé le point sous des versions antérieurs à 5.6...

Une idée ?

Romain

5 réponses


Maenhyr
Réponse acceptée

Salut, d'apres ce thread , tu ne peux pas declarer le contenus de tes variables en dehors du constructor ou d'autres methodes. Quand je copie toute ta classe dans PHPStorm, il me met tout le bloc apres $records = en rouge.

La concatenation de Strings est realise a la compilation donc tu dois initialiser tes records dans la fonction init().http://book.cakephp.org/3.0/en/development/testing.html#dynamic-data-and-fixtures

Tout ceci est d'apres la doc et pas teste. Si ca fonctionne, je n'ai aucune idee de pourquoi ca fonctionne avec PHP5.6 et pas en dessous, j'imagine que ce systeme a ete modifie en PHP5.6.

Tu as un lien vers l'erreur travis ?

Romano83
Auteur

Voici le lien vers l'erreur travis : PHP 5.4 et PHP 5.5.
Et le lien vers le fichier qui "bloque" : fichier.

Autant je sais que mes tests ne seront pas validé, autant cette erreur m'interpèle...

Romano83
Auteur

merci prbaron pour ta réponse.
Je teste ça ce soir après le boulot.

D'après ce que tu dis, je ne peux pas déclarer mes variables en dehors du constructor. Dans ce cas là, la variable $fields ne devrait pas passer elle non plus ?

De plus, ce qui est bizarre par rapport au lien vers la doc de CakePHP (j'avoue que je n'avais pas lu cette partie sur les fixtures), c'est que j'ai généré les fixtures avec la console de Cake. Théoriquement, elle devrait générer les fixtures comme dans la doc non ?

Romano83
Auteur

Merci à vous pour vos réponses !

Au moins, j'ai (encore) appris quelque chose aujourd'hui ;)