Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
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 07/04/2008, 22h21   #1
Membre du Club
 
Homme Jonathan
Inscription : avril 2007
Messages : 274
Détails du profil
Informations personnelles :
Nom : Homme Jonathan

Informations forums :
Inscription : avril 2007
Messages : 274
Points : 57
Points : 57
Par défaut [Zend_Controller] Fichier Bootstrap à la racine de l'appli ou ds le fichier public ?

Bonjour à tous,

J'ai suivi le tutoriel de developpez.com "Débuter avec le Zend Framework (approche MVC)" dans lequel il est indiqué de mettre le bootstrap dans à la racine de l'application.

D'autres tutos proposent de le mettre dans le fichier public (ou html, htdocs, selon le nom que l'on donne).

Quel est l'avantage du deuxième exemple par rapport au premier?

J'ai également vu qu'il est conseiller de n'avoir que le fichier public dans la zone accessible depuis le web. Dans ce cas, on est obligé d'utiliser la deuxième méthode non?

Je vous remercie d'avance pour les éclaircissements que vous pourrez me donner.
Jonathan.b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 15h18   #2
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

Ce tuto est un exemple simplissime d'application MVC avec Zend Framework. Il ne met pas en pratique les bonnes méthodes de programmation.
Tu devrais plutôt envisager une structure comme indiqué ici (attention, document en cours d'écriture) : http://framework.zend.com/wiki/displ...ClassSkeletons
Ou ici : http://framework.zend.com/wiki/displ...rectory+Layout
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/04/2008, 18h17   #3
Membre du Club
 
Homme Jonathan
Inscription : avril 2007
Messages : 274
Détails du profil
Informations personnelles :
Nom : Homme Jonathan

Informations forums :
Inscription : avril 2007
Messages : 274
Points : 57
Points : 57
Merci pour ces liens, j'avais déjà vu la page du deuxième et c'est justement vers ça que je souhaite me diriger.

cad, Avoir un fichier index dans le répertoire public avec une include vers le bootstrap qui se trouve dans le répertoire application.
Mais je n'arrive pas à le faire marcher. Particulièrement dans le path ou je doit mettre ../application partout non?
Jonathan.b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 01h02   #4
Membre du Club
 
Homme Jonathan
Inscription : avril 2007
Messages : 274
Détails du profil
Informations personnelles :
Nom : Homme Jonathan

Informations forums :
Inscription : avril 2007
Messages : 274
Points : 57
Points : 57
Je m'en suis enfin sorti et voilà comment j'ai fait.
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
site1/
  /application
    /models
    /modules
      /album
        /controllers
        /views
          /scripts
           /index
  /html
    index.php (le bootstrap)
  /library
et voilà le code que j'ai mis dans le fichier index.php

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<?php
error_reporting(E_ALL|E_STRICT);
date_default_timezone_set('Europe/Paris');
set_include_path('.'
    . PATH_SEPARATOR . realpath('./../library')
    . PATH_SEPARATOR . realpath('./../application/models/')
    . PATH_SEPARATOR . get_include_path());
 
include "Zend/Loader.php";
//Zend_Loader::registerAutoload();
Zend_Loader::loadClass('Zend_Controller_Front');
Zend_Loader::loadClass('Zend_Config_Ini');
Zend_Loader::loadClass('Zend_Registry');
Zend_Loader::loadClass('Zend_Db');
Zend_Loader::loadClass('Zend_Db_Table');
 
 
// load configuration
$config = new Zend_Config_Ini('./../application/config.ini', 'general');
$registry = Zend_Registry::getInstance();
$registry->set('config', $config);
 
// setup database
$db = Zend_Db::factory($config->db->adapter,  $config->db->config->toArray());
Zend_Db_Table::setDefaultAdapter($db);
 
// setup controller
$frontController = Zend_Controller_Front::getInstance();
$frontController->throwExceptions(true);
$frontController->setBaseUrl('/site1/');
//$frontController->setControllerDirectory('./../application/controllers');
$frontController->setControllerDirectory(array(
      'album'    => './../application/modules/album/controllers'
));
$frontController->addModuleDirectory('./../application/modules');
 
// run!
$frontController->dispatch();
Mon serveur apache est ensuite configuré pour pointer directement dans le fichier html (xxx.xxx.xxx.xxx/site1/album/ => page d'index du module album)

Je ne sais pas s'il y a des choses aberrantes dans mon bootstrap. Si ce n'est pas le cas, j'espère que ça pourra aider d'autres personnes.

J'attends donc votre avis.

Merci d'avance.
Jonathan.b est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 10h32   #5
Membre Expert
 
Avatar de Janitrix
 
Inscription : octobre 2005
Messages : 3 398
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 3 398
Points : 2 331
Points : 2 331
Salut,

Je ne vois pas de dossier "public" ou "htocs" qui contiendrait tes images, tes fichiers css, etc. Peut être est-ce le rôle du dossier "html" ? Personnellement je ne lui donnerai pas ce nom, ça prête à confusion

Pour le reste, cela semble correct.

Bonne continuation.
Janitrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 10h44   #6
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Habituellement, on place les modèles à l'intérieur de chaque module. Tu peux également avoir un répertoire models partagé entre tes modules, mais je crois qu'il faut les deux.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 10h52   #7
Membre Expert
 
Avatar de Janitrix
 
Inscription : octobre 2005
Messages : 3 398
Détails du profil
Informations forums :
Inscription : octobre 2005
Messages : 3 398
Points : 2 331
Points : 2 331
Citation:
Envoyé par Yogui Voir le message
Habituellement, on place les modèles à l'intérieur de chaque module. Tu peux également avoir un répertoire models partagé entre tes modules, mais je crois qu'il faut les deux.
Je suis d'accord avec cette proposition, mais histoire d'être sûr que j'ai bien compris : dans chaque sous-dossier model, tu mets les modèles propres au controlleur parent (par ex., si tu as un module News, tu vas mettre un modèle News), dans le dossier modèle parent tu mets par ex. le modèle Member, qui est utilisé par les modules News et Articles. C'est comme ça que tu vois le truc ?

Janitrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 10h54   #8
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Oui.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/04/2008, 14h09   #9
Membre du Club
 
Homme Jonathan
Inscription : avril 2007
Messages : 274
Détails du profil
Informations personnelles :
Nom : Homme Jonathan

Informations forums :
Inscription : avril 2007
Messages : 274
Points : 57
Points : 57
Janitrix => Oui, dans mon cas, le fichier public est la fichier html mais tu as en effet raison sur le fait que ce nom ne soit pas approprié.

Pour les répertoires des models, je n'ai pas du tout d'experience sur ZF ni sur les MVC, je ne sais donc pas concrètement comment utilisé cette couche.
Pour moi, j'avais juste l'impression que les models sont les accès aux bases, étant donné que depuis presque tous les modules, je devrais accéder à presque toutes les tables, je comptais mettre tous les models dans le même répertoire.

Pour moi cela n'est pas encore très clair...
Jonathan.b est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h26.


 
 
 
 
Partenaires

Hébergement Web