Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 13/05/2011, 11h40   #1
Membre régulier
 
Avatar de moukit233
 
Développeur informatique
Inscription : mai 2009
Messages : 227
Détails du profil
Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mai 2009
Messages : 227
Points : 84
Points : 84
Envoyer un message via AIM à moukit233 Envoyer un message via MSN à moukit233 Envoyer un message via Yahoo à moukit233
Par défaut projet PHP avec un MVC sans Frameworkzend

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.
moukit233 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/05/2011, 12h31   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
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 tes idées farfelues besoins.

Un peu de doc peut aider: http://en.wikipedia.org/wiki/Model%E...0%93controller
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 14/05/2011, 11h45   #3
Expert Confirmé
 
Avatar de rawsrc
 
Homme Martin
Dev indep
Inscription : mars 2004
Messages : 1 461
Détails du profil
Informations personnelles :
Nom : Homme Martin
Âge : 35
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Dev indep

Informations forums :
Inscription : mars 2004
Messages : 1 461
Points : 2 548
Points : 2 548
Envoyer un message via Skype™ à rawsrc
Citation:
Envoyé par Benjamin Delespierre Voir le message
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 tes idées farfelues besoins.
Je terminerais différemment :
Citation:
Envoyé par Benjamin Delespierre Voir le message
mais ça ne veut pas dire que tu ne peux pas créer le tien selon tes idées farfelues besoins.
__________________
# Dans la Création, tout est permis mais tout n'est pas utile...
rawsrc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/05/2011, 12h21   #4
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
Si ça vous branche, je viens de publier le mien (il est encore en béta): http://code.google.com/p/php-axiom/
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 13h15   #5
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
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 :
Citation:
Error 500 - Internal server error
Un problème inattendu est survenu.
Veuillez réessayer ultérieurement.
Quel est le problème ?
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 14h15   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 103
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 103
Points : 8 466
Points : 8 466
Citation:
Envoyé par laurentSc Voir le message
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 ?
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 14h36   #7
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
Citation:
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 : ...
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 paresse

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
Code :
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
Remplacer le RewriteBase par la base URL correcte, par exemple si tu accède au projet par http://localhost/test/, ce sera RewriteBase /test

- application\.htaccess
Code :
1
2
3
4
5
6
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteBase /axiom
    RewriteRule ^$   webroot/   [L]
    RewriteRule (.*) webroot/$1 [L]
</IfModule>
Même chose que précédemment

- application\webroot\.htaccess
Code :
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>
Même chose que précédemment

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:
Code :
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");
    }
 
}
La méthode index est obligatoire car elle caractérise l'action par défaut pour le contrôleur.

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:
Code :
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
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.

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:
Code :
1
2
<h2>This is a sample made with AXIOM</h2>
<p>The given variable is <?=$variable?></p>
On y retrouve la variable renvoyée par le contrôleur.

Il ne reste qu'a appeller http://localhost/test/foo/bar (dans notre exemple) pour visualiser le résultat.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 15h27   #8
Débutant
 
Homme Laurent
Webmaster
Inscription : octobre 2006
Messages : 2 873
Détails du profil
Informations personnelles :
Nom : Homme Laurent
Âge : 48
Localisation : France, Isère (Rhône Alpes)

Informations professionnelles :
Activité : Webmaster
Secteur : Industrie

Informations forums :
Inscription : octobre 2006
Messages : 2 873
Points : 1 320
Points : 1 320
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 :
Citation:
Un jour je paierai pour ma paresse
Ca, c'est sûr
Citation:
La méthode index est mandataire
Heureusement que je sais qu'en anglais mandatory=obligatoire, car en français, ça n'a rien à voir
laurentSc est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/05/2011, 16h05   #9
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 016
Points : 5 016
J'ai fait un stub de documentation sur la page du projet dans le wiki.

Citation:
Ouh, là, là ; je crois que je vais attendre qu'un outil fasse tout ça pour moi
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.

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
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/05/2011, 08h17   #10
Membre régulier
 
Homme
Développeur Web
Inscription : octobre 2009
Messages : 72
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Vietnam

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : octobre 2009
Messages : 72
Points : 99
Points : 99
Par défaut merci pour axiom

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.
matlow est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/06/2011, 23h39   #11
Membre éclairé
 
Homme
Webmaster
Inscription : septembre 2007
Messages : 376
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : septembre 2007
Messages : 376
Points : 377
Points : 377
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
Finality est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h10.


 
 
 
 
Partenaires

Hébergement Web