[RESOLU] Mini framework PHP "Flight"

Eléphanteau du PHP | 22 Messages

03 déc. 2018, 11:35

Bonjour,

Je cherchais un mini framework pour développer des petits sites avec, pour mon apprentissage.
J'ai quelques notions en PHP mais je coince totalement sur un script.

Pour être clair j'aimerais mettre mon site sous forme MVC, avec un layout qui contiendrait la page qu'on lui demande.

Le framework en question est Flight, la doc est très courte et se trouve ici http://flightphp.com/learn/

Ce serait sympa si quelqu'un me donnait une piste, par où commencer sachant que le site que j'ai à faire est très simple, ce serait 3 ou 4 pages maximum avec seulement des données texte, une map google et un formulaire de contact.

Merci par avance pour votre aide

Avatar du membre
Mammouth du PHP | 1609 Messages

03 déc. 2018, 15:30

Salut, je n'ai jamais utilisé ce framework mais la doc me paraît quand même très clair. L'as tu bien lu ? Il y a une partie Views qui explique bien le fonctionnement des vues avec un exemple de layout.
As tu essayé ne serait ce que de faire un HelloWorld puis l'agrémenté au fur et à mesure ?
Sur quoi bloques tu exactement ?
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 22 Messages

03 déc. 2018, 17:08

Salut,
Alors voici un exemple de ce sur quoi je bloque

Code : Tout sélectionner

<?php require 'vendor/autoload.php'; Flight::route('/', function(){ echo 'hello world!'; }); Flight::route('/test', function(){ echo 'hello world!'; }); Flight::start();
Pour la route / tout est OK, mais pour la route "test" j'ai une erreur 404 :/

Je ne comprends pas pourquoi.

J'ai surtout survolé la doc pour le reste, déjà régler ce problème ensuite je pourrais poser d'autres questions plus spécifiques

Avatar du membre
Mammouth du PHP | 1609 Messages

03 déc. 2018, 17:23

Ok, alors effectivement je crois pas avoir vu ça dans la documentation mais comme le fichier php fait office de contrôleur principal, je pense que tu dois mettre en place une réécriture d'url (par .htaccess si tu es sur un serveur apache).

Comment as tu nommé le fichier ? index.php ? quelle url mets tu dans la barre d'adresse du navigateur ?
http://localhost/
http://localhost/test
http://localhost/index.php/
http://localhost/index.php/test
?

Qu'est ce qui fonctionne et ne fonctionne pas ? avec un fichier index.php la première devrait fonctionner mais pas la deuxième, le problème étant que si tu fais http://localhost/test, le serveur cherche un fichier ou un dossier test et ne le trouvant pas, tu as une 404.
Les 2 dernières fonctionnent-elles ? j'imagine que oui.
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 22 Messages

03 déc. 2018, 17:50

Mon URL principale est celle là :
http://localhost/Zfruitsetlegumes/
Ca fonctionne

http://localhost/Zfruitsetlegumes/test me donne :

Code : Tout sélectionner

Not Found The requested URL /Zfruitsetlegumes/test was not found on this server. Apache/2.4.18 (Ubuntu) Server at localhost Port 80
Avec le index.php la page d'erreur est différente :

http://localhost/Zfruitsetlegumes/index.php/test

Code : Tout sélectionner

404 Not Found The page you have requested could not be found.
J'ai un fichier .htaccess à la racine de mon projet :

Code : Tout sélectionner

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [QSA,L]

Avatar du membre
Mammouth du PHP | 1609 Messages

03 déc. 2018, 17:57

Ok donc à priori l'adresse http://localhost/Zfruitsetlegumes/test devrait fonctionner car tu as bien la rewrite rule qui redirige toutes les adresses vers index.php.
Soit le mod rewrite n'est pas activé (à vérifier) soit il te suffirait peut être d'ajouter la RewriteBase /Zfruitsetlegumes

PS : ok je viens de voir que le .htaccess est expliqué dans la partie install du site. ^^
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 22 Messages

03 déc. 2018, 18:03

Le mod rewrite est bien activé, par contre la rewritebase je ne sais pas ce que c'est :/

Avatar du membre
Mammouth du PHP | 1609 Messages

03 déc. 2018, 18:03

C'est une directive à ajouter dans le htacces après le RewriteEngine On. ;)
J'imagine que tu as fait un alias pour le site ou que tu es dans un sous répertoire du root dir.

Dit grossièrement, étant donné que ton adresse est http://localhost/Zfruitsetlegumes/test, Je pense que la rewrite rule tente de la réécrire en http://localhost/index.php. Avec la rewrite base ça devrait bien la réécrire en http://localhost/Zfruitsetlegumes/index.php et le contrôleur devrait bien matcher la route /test.
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 22 Messages

03 déc. 2018, 18:10

Je vais peut être abuser mais te serait-il possible de me donner la ligne exacte que je devrais rajouter ?

Avatar du membre
Mammouth du PHP | 1609 Messages

03 déc. 2018, 18:14

Code : Tout sélectionner

RewriteEngine On RewriteBase /Zfruitsetlegumes RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php [QSA,L]
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 22 Messages

03 déc. 2018, 18:15

Ca ne fonctionne toujours pas, j'ai les même page d'erreur 404 :/

Avatar du membre
Mammouth du PHP | 1609 Messages

03 déc. 2018, 18:17

C'est moche :mrgreen:
Tu es sur que le mod rewrite est bien activé ?
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 22 Messages

03 déc. 2018, 18:18

T'es à court d'idée ? C'est bizarre car d'autres gens ont testé et ça fonctionne très bien chez eux... frustrant cette histoire

Avatar du membre
Mammouth du PHP | 1609 Messages

03 déc. 2018, 18:19

Bah oui à part le mod rewrite pas activé je trouve ça très étonnant.
Développeur web depuis + de 20 ans

Eléphanteau du PHP | 22 Messages

03 déc. 2018, 18:19

Phpinfo() : Loaded Modules : mod_rewrite