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


eltharin
Réponse acceptée

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

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

Amicalement

Diarill
Auteur
<?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.

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

Diarill
Auteur

Oui j'ai le même message.

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

Diarill
Auteur

C'est la 5.6.

Diarill
Auteur

C'est la 5.6.

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
Auteur

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

même message?

Diarill
Auteur

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

Diarill
Auteur

Merci pour votre soutien.

Diarill
Auteur

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

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

Sinon il suffit de retirer le

: ResponseInterface

Pour rendre ce code compatible avec php 5.6.

Cordialement,

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

Diarill
Auteur

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

Diarill
Auteur

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