Parse error: syntax error

Par Diarill, il y a 8 ans


Bonjour,
Voilà je suis débutant en Php Orienté Objet et je suis les cours de formation que propose Grafikart depuis quelques jours.
je rencontre cependant un problème avec mon code, au module "Mise en pratique de la POO en PHP", chapitre 1: Structure du projet.

Ce que je fais

J'ai bien suivi et exécuté toutes les étapes jusqu'au moment où mon navigateur m'affiche cette erreure : Parse error: syntax error, unexpected ':', expecting ';' or '{' in C:\wamp64\www\MonFramwork\src\Framework\App.php on line 12.
Pour me rassurer que le problème ne venait pas de mon code, j'ai téléchargé le code source en ligne que j'ai exécuté. Patate chaude; même erreure. Là suis callé, par ce que je ne sais pas si le problème vient de windows 10, de wampserver 3.1, de google chrome, ou alors...
Je pense qu'il est unitile de vous afficher les codes. Vous les avez en téléchargement.
Merci pour vos réactions et bon début de semaine les codeurs.

19 réponses

Twentyfour, il y a 8 ans

Bête erreur de points virgule ou accolade manquante dans ton code. Re-vérifie le.

Amicalement

Diarill, il y a 8 ans
<?php namespace Framework; use GuzzleHttp\Psr7\Response; use Psr\Http\Message\ResponseInterface; use Psr\Http\Message\ServerRequestInterface; class App { public function run(ServerRequestInterface $request): ResponseInterface { $uri = $request->getUri()->getPath(); if (!empty($uri) && $uri[-1] === "/") { return (new Response()) ->withStatus(301) ->withHeader('Location', substr($uri, 0, -1)); } if ($uri === '/blog') { return new Response(200, [], '<h1>Bienvenue sur le blog</h1>'); } return new Response(404, [], '<h1>Erreur 404</h1>'); } }

Merci pour votre réponse. Mais aidez moi à revoir ce code parce que je ne vois pas comment corriger cette erreure. J'ai beau placer ces ';' et '{' dans ce code, mais ça ne fonctionne pas.
Merci encore.

eltharin, il y a 8 ans

Bonjour,
Chez moi ce code fonctionne, tu as toujours le même message d'erreur?

Diarill, il y a 8 ans

Oui j'ai le même message.

eltharin, il y a 8 ans

c'est quoi ta version de php?
tu serais pas en 5.5 ou 5.6 par hasard?

Diarill, il y a 8 ans

C'est la 5.6.

Diarill, il y a 8 ans

C'est la 5.6.

eltharin, il y a 8 ans

Bingo!
la notation du retour des fonction n'est venu qu'avec la version 7, donc php 5.6 ne peut pas comprendre le ": ResponseInterface" lui attend une { d'où le message d'erreur que tu as.

Passe en 7 voir mieux en 7.2 et ton code marchera.

Pour rappel, les versions 5.X ne sont plus maintenues et la version 7.0 ne reçoit plus que des MAJ de sécurité jusqu'au 03/12/2018.

Diarill, il y a 8 ans

J'ai essayé d'activité la 7.1 mon wamp mais ça ne marche pas.

eltharin, il y a 8 ans

même message?

Diarill, il y a 8 ans

Pas de changement. Je suis en train de voir si une version de wamp est disponible avec php7. X stable.

Diarill, il y a 8 ans

Merci pour votre soutien.

Diarill, il y a 8 ans

Je vous tiens informé si j'ai du nouveau.

Carouge10, il y a 8 ans

Bonsoir,
La dernière version de wamp (la 3) possède php 7.0

SwithFr, il y a 8 ans

Sinon il suffit de retirer le

: ResponseInterface

Pour rendre ce code compatible avec php 5.6.

Cordialement,

TaKe_Da_ShAkEr, il y a 8 ans

+1 @SwithFr, ca ne peut être que ca le problème.

Diarill, il y a 8 ans

Bonsoir tout le monde et merci pour le soutien que vous m'avez apporté pour la résolution de mon problème.
J'ai finalement pu le résoudre après quelques bidouillage.
Dans un premier temps, j'ai désinstallé wamp serveur et supprimer de mon ordinateur tout ce qui pouvait être en rapport avec ce serveur local. En seconde partie, j'ai téléchargé php7.2 stable et apache2.4; Voici le lien pour php7.2 windows.php.net/download/ et pour apache, suivre cet autre lien www.apache longe.com/download/. Pour terminer, j'ai suivi l'installation que propose ce site: danielarancibia.wordpress.com/2015/09/27/installing-apache-2-4-and-php-7-for-development-on-windows/.
Maintenant tout fonctionne.
Merci encore et à très bientôt.
Amicalement

eltharin, il y a 8 ans

Cool! oublie pas de mettre le sujet en résolu.

Diarill, il y a 8 ans

Comment je fais pour mettre le sujet en résolu?