Page 1 sur 2
Mini framework PHP "Flight"
Posté : 03 déc. 2018, 11:35
par JulienRNSNeo
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
Re: Mini framework PHP "Flight"
Posté : 03 déc. 2018, 15:30
par Saian
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 ?
Re: Mini framework PHP "Flight"
Posté : 03 déc. 2018, 17:08
par JulienRNSNeo
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
Re: Mini framework PHP "Flight"
Posté : 03 déc. 2018, 17:23
par Saian
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.
Re: Mini framework PHP "Flight"
Posté : 03 déc. 2018, 17:50
par JulienRNSNeo
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]
Re: Mini framework PHP "Flight"
Posté : 03 déc. 2018, 17:57
par Saian
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. ^^
Re: Mini framework PHP "Flight"
Posté : 03 déc. 2018, 18:03
par JulienRNSNeo
Le mod rewrite est bien activé, par contre la rewritebase je ne sais pas ce que c'est :/
Re: Mini framework PHP "Flight"
Posté : 03 déc. 2018, 18:03
par Saian
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.
Re: Mini framework PHP "Flight"
Posté : 03 déc. 2018, 18:10
par JulienRNSNeo
Je vais peut être abuser mais te serait-il possible de me donner la ligne exacte que je devrais rajouter ?
Re: Mini framework PHP "Flight"
Posté : 03 déc. 2018, 18:14
par Saian
Code : Tout sélectionner
RewriteEngine On
RewriteBase /Zfruitsetlegumes
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php [QSA,L]
Re: Mini framework PHP "Flight"
Posté : 03 déc. 2018, 18:15
par JulienRNSNeo
Ca ne fonctionne toujours pas, j'ai les même page d'erreur 404 :/
Re: Mini framework PHP "Flight"
Posté : 03 déc. 2018, 18:17
par Saian
C'est moche

Tu es sur que le mod rewrite est bien activé ?
Re: Mini framework PHP "Flight"
Posté : 03 déc. 2018, 18:18
par JulienRNSNeo
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
Re: Mini framework PHP "Flight"
Posté : 03 déc. 2018, 18:19
par Saian
Bah oui à part le mod rewrite pas activé je trouve ça très étonnant.
Re: Mini framework PHP "Flight"
Posté : 03 déc. 2018, 18:19
par JulienRNSNeo
Phpinfo() : Loaded Modules : mod_rewrite