IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MVC PHP Discussion :

Autoload et models


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Par défaut Autoload et models
    Bonjour, je n'arrive pas à configurer mon application pour que je n'ai pas besoin d'inclure manuellement mes modèles lors que je les appelle.

    J'ai réussi avec une classe perso comme indiquer sur ce sujet : http://www.developpez.net/forums/d98...ettre-fichier/

    mais je n'arrive pas à faire de même pour mes modèles.

  2. #2
    Membre chevronné Avatar de manuscle
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2004
    Messages
    488
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2004
    Messages : 488
    Par défaut
    Tu utilise les modules?

    car sinon c'est simple, prenons l'exemple avec une table 'users'
    tu as un répertoire models dans le quel tu crée un fichier nommé Users.php
    Donc application/models/Users.php
    et taclasse se nommera ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // application/models/Users.php
    class Users extends Zend_Db_Table_Abstract
    {}
    En module c'est un peu plus compliqué:
    si ta users doit se trouver dans le module toto il te faudra modifier le nom de la classe:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    // application/modules/toto/models/DbTable/Users.php
    class Toto_Model_DbTable_Users extends Zend_Db_Table_Abstract
    {}

  3. #3
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    Bonjour,

    personnellement, je crée dans mon bootstrap ce genre de méthode :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    protected function _initAutoloader() {
            $loader = new Zend_Loader_Autoloader_Resource(array(
                        'basePath' => APPLICATION_PATH,
                        'namespace' => ''
                    ));
     
            $loader->addResourceType('mesModels', 'mesModels', 'My_Model');       
     
            return $loader;
        }

    Ainsi, si tu as un répertoire mesModels sous APPLICATION_PATH, il te suffira d'appeler la classe My_Model_Model1 pour appeler la classe Model1 dans le répertoire mesModels sans avoir d'include/require à effectuer

  4. #4
    Membre confirmé Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Par défaut
    Merci et désolé pour cette réponse tardive, je viens juste de retombé sur ce post que j'avais complètement oublié.

    J'ai mis en place une gestion par module.

    J'ai testé ces deux bouts de codes, séparément et les deux ensembles :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    protected function _initDefaultNamespace()
    	{
    		$moduleLoaders = array();
     
    		// Frontend
    		$frontend = new Zend_Application_Module_Autoloader(
    			array(
    				'namespace' => 'Frontend_', 
    				'basePath'  => APPLICATION_PATH . '/modules/frontend',
    			)
    		);
     
    		$frontend->addResourceType('mesModels', APPLICATION_PATH . '/models');
     
    		// Backend
    		$backend = new Zend_Application_Module_Autoloader(
    		array(
    			'namespace' => 'Backend_', 
    			'basePath'  => APPLICATION_PATH . '/modules/backend',
    		)
    		);
     
    		$moduleLoaders['Frontend'] = $frontend;
    		$moduleLoaders['Backend'] = $backend;
     
    		return $moduleLoaders;
    	}
    et ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    	protected function _initAutoloaderRessource() {
     
    		$loader = new Zend_Loader_Autoloader_Resource(array(
    			'basePath' => APPLICATION_PATH,
    			'namespace' => ''
    			));
     
    		$loader->addResourceType('mesModels', APPLICATION_PATH . '/models', 'My_Model');
     
    		return $loader;
    	}
    Mais ça ne marche pas...

  5. #5
    Membre confirmé Avatar de ToxiK
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 152
    Par défaut
    Petite actualisation :

    Mes models ne sont pas appelés automatiquement , je suis obligé de faire un include.

    J'ai toujours mes deux fonctions _initDefaultNamespace et _initAutoloaderRessource comme dans le post au dessus.

Discussions similaires

  1. Erreur - Autoload et models
    Par Heliopraetor dans le forum Zend Framework
    Réponses: 2
    Dernier message: 17/07/2009, 11h59
  2. [CR10] Etats modeles !
    Par chcollet dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 02/07/2004, 14h25
  3. [Swing][TableColumnModel] model colonnes de JTable
    Par imothep dans le forum Composants
    Réponses: 2
    Dernier message: 18/06/2004, 17h32
  4. programmation reseau - couche 2 du modele osi
    Par sahor dans le forum C++Builder
    Réponses: 3
    Dernier message: 06/11/2002, 18h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo