Bonjour
j'apprends en ce moment le MVC avec PHP
et je voudrait pouvoir creer un site web avec un MVC sans l'utilisation de FramworkZend
c possible ???
si oui, exemples ?
cordialement
Bonjour
j'apprends en ce moment le MVC avec PHP
et je voudrait pouvoir creer un site web avec un MVC sans l'utilisation de FramworkZend
c possible ???
si oui, exemples ?
cordialement
«En théorie, la théorie et la pratique sont les mêmes. En pratique, ils le sont pas."
Albert Einstein.
Bien sûr m'sieur. MVC est un Pattern qu'implémentent la quasi totalité des frameworks actuels, mais ça ne veut pas dire que tu ne peux pas créer le tien selon tesidées farfeluesbesoins.
Un peu de doc peut aider: http://en.wikipedia.org/wiki/Model%E...0%93controller
On vous a menti
PHP, Injection de dépendances et composants
La POO en PHP en 10 minutes pour moins
Suivez-moi sur GitHub et Twitter
N'oubliez pas de vous servir des bouttons , et
- PDO++ : Une nouvelle façon d'utiliser PDO. Billet de blog || Code source
- PhpEcho : Un moteur de rendu en une seule classe ! Nouvelle version (release 2.3.2) publiée le 18/04/2020 : Billet de blog || Code source
Si ça vous branche, je viens de publier le mien (il est encore en béta): http://code.google.com/p/php-axiom/
On vous a menti
PHP, Injection de dépendances et composants
La POO en PHP en 10 minutes pour moins
Suivez-moi sur GitHub et Twitter
N'oubliez pas de vous servir des bouttons , et
Ayant lu que c'était plus simple que ZF et symfony, ça m'a branché (sachant qu'on m'a déjà dit que symfony était plus abordable que ZF et que je n'arrive même pas à installer symfony...).
Comme tu n'indiques rien, j'ai supposé que pour le démarrer, il faut lancer ".../application/index.php" ; j'ai passé mon hébergeur en PHP5 pour ne pas avoir d'ennui, mais quand je lance le fichier, ça me donne :Quel est le problème ?Error 500 - Internal server error
Un problème inattendu est survenu.
Veuillez réessayer ultérieurement.
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
Si la discussion est résolue, merci de cliquer sur le bouton
normalement tu dois faire un vhost, mais on accède pas pas les fichier php,
http://exemple.com arrive dans le controller index sur l'action index
http://exemple.com/user/all arrive dans le controller user sur l'action all
il faut aussi bien régler ton htaccess
Oui je l'ai publié ce week-end et je n'ai pas encore écrit de documentation end-user... Un jour je paierai pour ma paresseComme tu n'indiques rien, j'ai supposé que pour le démarrer, il faut lancer ".../application/index.php" ; j'ai passé mon hébergeur en PHP5 pour ne pas avoir d'ennui, mais quand je lance le fichier, ça me donne : ...
Il y a 3 fichiers .htaccess à configurer pour faire fonctionner le framework. Ils sont là pour accéder directement à /application/webroot/index.php en récupérant l'URL qu'il mets dans $_GET.
Voici les contenus des fichiers .htaccess:
- .htaccess
Remplacer le RewriteBase par la base URL correcte, par exemple si tu accède au projet par http://localhost/test/, ce sera RewriteBase /test
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <IfModule mod_rewrite.c> RewriteEngine on RewriteBase /axiom RewriteRule ^$ application/webroot/ [L] RewriteRule (.*) application/webroot/$1 [L] </IfModule> php_flag short_open_tag 1
- application\.htaccess
Même chose que précédemment
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <IfModule mod_rewrite.c> RewriteEngine on RewriteBase /axiom RewriteRule ^$ webroot/ [L] RewriteRule (.*) webroot/$1 [L] </IfModule>
- application\webroot\.htaccess
Même chose que précédemment
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase /axiom RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !favicon.ico$ RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] </IfModule>
Pour commencer à créer une nouvelle page voici une courte explication:
Dans notre exemple, on supposera que le framework est déployé dans le répertoire 'test' situé à la racine d'apache (/var/www/test/ sous linux ou c:/wamp/www/test/ sous windows).
1 - créer un nouveau contrôleur
Les contrôleurs vont dans /application/controller/.
Les requêtes sont automatiquement redirigées sur /application/webroot/index.php. Dans ce script, l'application est démarée (on appelle /application/config/bootstrap.php - c'est également là qu'on fera la connexion à la base de données) puis on appelle le routeur qui va décortiquer l'URL pour trouver le contrôleur et l'action. Si par exemple on à appelé http://localhost/test/foo/bar, le routeur cherchera un contrôleur FooController.class.php et exécutera l'action bar (soit une de ses méthodes).
Exemple:
La méthode index est obligatoire car elle caractérise l'action par défaut pour le contrôleur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <?php class FooController extends BaseController { public static function index () { } public static function bar () { $variable = "say hello to peter"; return compact("variable"); } }
Les méthodes du contrôleur renvoient des tableaux qui sont les données destinées aux vues. Il est recommandé d'utiliser compact pour cela car cette fonction à l'avantage d'être silencieuse au niveau des erreurs:
Note: les actions des contrôleurs doivent être déclarées statiques car elles seront appelées statiquement par le routeur - de plus l'appel à une méthode de classe est 4x plus rapide que l'appel à une méthode d'instance.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $a = 1; $b = compact('a', 'inexistant'); // ne lève pas d'erreur et renvoie un tableau avec uniquement $a $b = array($a, $inexistant); // lève un E_NOTICE et mets null à la place de $inexistant
2 - créer un vue associée
Les vues vont dans le répertoire /application/view, elles sont hiérarchisées par contrôleur. On va donc créer un vue pour l'action bar du contrôleur foo dans /application/view/foo/bar.html.php (on spécifie le format avant .php de sorte qu'on puisse construire d'autres vues pour d'autres format comme bar.json.php pour l'ajax par exemple).
Exemple:
On y retrouve la variable renvoyée par le contrôleur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2<h2>This is a sample made with AXIOM</h2> <p>The given variable is <?=$variable?></p>
Il ne reste qu'a appeller http://localhost/test/foo/bar (dans notre exemple) pour visualiser le résultat.
On vous a menti
PHP, Injection de dépendances et composants
La POO en PHP en 10 minutes pour moins
Suivez-moi sur GitHub et Twitter
N'oubliez pas de vous servir des bouttons , et
Ouh, là, là ; je crois que je vais attendre qu'un outil fasse tout ça pour moi (je t'accorde une ou deux semaines ), et attendre aussi la doc :Ca, c'est sûrUn jour je paierai pour ma paresse
Heureusement que je sais qu'en anglais mandatory=obligatoire, car en français, ça n'a rien à voirLa méthode index est mandataire
Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell
Si la discussion est résolue, merci de cliquer sur le bouton
J'ai fait un stub de documentation sur la page du projet dans le wiki.
Vu que c'est un framework et non un CMS, je ne ferai pas un tel outil. En même temps c'est pas la mort de modifier 3 directives.Ouh, là, là ; je crois que je vais attendre qu'un outil fasse tout ça pour moi
Si tu installe dans c:/wamp/www/axiom, bah tu as juste à changer RewriteBase en /axiom dans les 3 fichiers .htaccess, ce n'est pas bien compliqué
En attendant que je fasse une doc digne de ce nom, tu peux toujours t'amuser à regarder les classes de la libraire, ça te donnera de bonnes idées
On vous a menti
PHP, Injection de dépendances et composants
La POO en PHP en 10 minutes pour moins
Suivez-moi sur GitHub et Twitter
N'oubliez pas de vous servir des bouttons , et
merci pour ce petit framework, je m'y attèle actuellement, bon exercice pour ce familiariser aux pattern MVC en php5 et certainement un outil qui me sera utile à l'avenir pour des projets perso.
Salut,
tu peux aussi regarder du côté du framework cakePHP : http://www.cakephp-fr.org/
Très simple d'utilisation (de ce que j'en ai entendu) et avec une belle communauté derrière.
Finality
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager