Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 02-04-2008 16:33:45

Akis
Membre
Date d'inscription: 29-03-2008
Messages: 86
Site web

Include avec utilisation de module

Bonjour à tous,

Si on utilise le ZF avec des modules, comment faites-vous pour gérer les includes des class ?

Au départ, quand on essaie d'apprendre à utiliser le framework, on nous dit de changer l'include path comme ceci :

Code:

set_include_path('.'
        . PATH_SEPARATOR . './library'
        . PATH_SEPARATOR . './application/models/'
        . PATH_SEPARATOR . get_include_path());

Sauf que quand on utilise des modules, il existe plusieurs dossiers modèle, etc.

Dans ce cas, comment faites-vous ? Vous les mettez tous dans l'include path ?
N'est-ce pas lourd en ressource de mettre plein de path ?

Merci d'avance

Hors ligne

 

#2 02-04-2008 17:19:09

fizzbanana
Membre
Date d'inscription: 29-05-2007
Messages: 40

Re: Include avec utilisation de module

ce n'est pas obligatoire pour avoir un dossier Models pour chaque module.

moi, j'ai tous mes Models dans un dossier.  comme ça l'include path reste comme il est.

sinon, le plus pratique c'est de faire comme vous avez dit...mettre tous dans l'include path.

Hors ligne

 

#3 02-04-2008 18:40:23

Mr.MoOx
Administrateur
Lieu: Toulouse
Date d'inscription: 27-03-2007
Messages: 1444
Site web

Re: Include avec utilisation de module

Idem quand j'ai des modules, je mets toutes mes classes dans un seul dossier Models/
Après peut être faut voir selon les besoins et le nombres de classes...

Hors ligne

 

#4 02-04-2008 19:39:10

Akis
Membre
Date d'inscription: 29-03-2008
Messages: 86
Site web

Re: Include avec utilisation de module

Ok ok merci de vos avis wink

(Je pensais qu'il fallait chaque fois duppliquer les dossiers du mvc)

Hors ligne

 

#5 07-02-2009 00:12:58

Davjack
Membre
Date d'inscription: 06-02-2009
Messages: 32

Re: Include avec utilisation de module

Bonjour,

J'ai le même problème que Akis dans le cadre du développement d'une application semblable à un CMS.

Pour ma part, je n'aimerais pas devoir mettre tous mes modèles dans une seule classe car chaque module correspond à un type de fonctions pour mon site (donc possibilité de ne pas inclure certains modules : par exemple forum).

Comme les dernier message de ce sujet date du 2.4.2008, je me permet de reposer la question :
Est-ce possible d'accéder aux modèles de chaque module sans devoir mettre des "include path" pour chaque modules dans le bootstrap ?

Code:

set_include_path('.'
       ...
        . PATH_SEPARATOR . './application/module1/models/'
        . PATH_SEPARATOR . './application/module2/models/'
       ...

Merci d'avance wink

Hors ligne

 

#6 20-02-2009 10:57:38

gauthier
Membre
Date d'inscription: 30-09-2008
Messages: 116
Site web

Re: Include avec utilisation de module

Quelques petites remarques sur le sujet...

1) il est préférable d'utiliser un dossier "models" par module, du moins lorsque ce module a été designé pour être réutilisable (ex. un forum, un système d'identification, etc...)

2) un petit truc, pour plus de lisibilité si l'on affecte de nombreux chemins à l'include_path :

Code:

$includePath = array(
    '/path/to/zf/library',
    '../library',
    '../application/default/models/',
    get_include_path()    
);
set_include_path(implode(PATH_SEPARATOR, $includePath));

ça évite les concaténations interminables et les redondances de PATH_SEPARATOR smile

3) notez que pour gagner quelques millisecondes (il y en a que ça fait triper, et d'autres qui en ont besoin wink), il est préférable de placer en premier le chemin du ZF, car PHP teste la présence du fichier à inclure dans l'ordre, et qu'il s'arrêtera dès qu'il trouve une correspondance. Comme ce sont les fichiers sources du ZF qui sont les plus abondamment inclus...

4) autre option pour l'inclusion des modèles, vous pouvez aussi enregistrer un autoloader personnalisé avec Zend_Loader::registerAutoload()


Consultant Zend Technologies // Blog perso : Logiciel libre et développement web -- http://freeblogware.org

Hors ligne

 

#7 20-02-2009 11:28:11

3uclide
Membre
Date d'inscription: 09-08-2008
Messages: 194

Re: Include avec utilisation de module

Pour ma part j'utilise le système de nomenclature de zend, c-a-d, j'ajoute dans l'include path la racine de mes modules et de mes plugins, donc si je veux, par exemple, retrouver le model permettant de gérer les tickets d'un blog, je n'ai qu'à l'instancier la classe:

Code:

new Blog_Model_Ticket_Component

elle est alors automatiquement chargé via le Zend_Loader.

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages