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

Zend Framework PHP Discussion :

Syteme de modules et chargement de classe


Sujet :

Zend Framework PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut Syteme de modules et chargement de classe
    Bonjours,Je viens de mettre en place un syteme modulaire qui fonctionne bien.

    Sauf que pour la peine, quand je veux cherher une classe sa marche pas avec le message d'erreur qui va avec.

    Voici mon Bootstrap principale :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
    		{
    		    public function run()
    		    {
    				// Cela permet d'avoir la configuration disponible de partout dans notre application
    		        Zend_Registry::set('config', new Zend_Config($this->getOptions()));
    		        parent::run();
    		    }
     
    		    protected function _initDefaultNamespace()
        {
            $this->bootstrap('frontcontroller');
            $fc = $this->getResource('frontcontroller');
            $defaultModule = $fc->getControllerDirectory($fc->getDefaultModule());
     
    		new Zend_Application_Module_Autoloader(array(
                    'namespace' => '', // pas de namespace
                    'basePath'  => APPLICATION_PATH . $defaultModule,
                ));
        }
     
     
        protected function _initView()
        {
            // Initialize view
            $view = new Zend_View();
            $view->doctype('XHTML1_STRICT');
            $view->headTitle('Ma premiere application avec Zend');
            $view->headMeta()->appendHttpEquiv('Content-Type', 'text/html; charset=ISO-8859-1');
            // Add it to the ViewRenderer
            $viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
            $viewRenderer->setView($view);
            // Return it, so that it can be stored by the bootstrap
            return $view;	
        }
     
    }
    Donc dans modules/default/controllers/IndexController.php
    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
     
    <?php
    class IndexController extends Zend_Controller_Action
    {
        public function init()
        {
           $this->view->headTitle('Mon application avec Zend_Application (Utilisateur par défaut)');
        }
     
        public function indexAction()
        {
            $this->_response->appendBody('Bievenue');
        }
     
    	public function testAction()
    	 {
    	 $tuto1 = new Model_Tuto1();
    	 $this->view->tabTuto1 = $tuto1->find();
    	 }
    }
    Et le model Tuto1.php dans modules/default/model/Tuto1.php
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
     
    <?php
    class Model_Tuto1 {
    	 private $dbTable;
    	 private $id;
    	 private $fr;
    	 private $en;
     
    	public function __construct( $id = false ) {
    		$this->dbTable = new Model_DbTable_Tuto1();
    		if($id) {
    	    	$tmp = $this->dbTable->getTuto1($id);
    	        $this->id = $tmp['id_tuto1'];
    	        $this->fr = $tmp['fr'];
    	        $this->en = $tmp['en'];
    	     }
    	 }
     
    	 /*
    	 * GET & SET
    	 */
    	 public function getDbTable() {
    	     return $this->dbTable;
    	 }
    	 public function getId() {
    	     return $this->id;
    	 }
    	 public function getFr() {
    	     return $this->fr;
    	 }
    	 public function getEn() {
    	     return $this->en;
    	 }
     
    	 public function setId($id) {
    	     $this->id = id;
    	 }
    	 public function setFr($fr) {
    	     $this->fr = $fr;
    	 }
    	 public function setEn($en) {
    	     $this->en = $en;
    	 }
     
    	 public function add() {
    	     return $this->dbTable->ajouter(array('fr' => $this->fr, 'en' => $this->en));
    	 }
     
    	 public function update() {
    	     $this->dbTable->maj(array('id' => $this->id, 'fr' => $this->fr, 'en' => $this->en));
    	 }
     
    	 public function delete() {
    	     $this->dbTable->supprimer($this->id);
    	 }
     
    	 public function find($tab = false) {
    	     $results = $this->dbTable->find($tab);
     
    	     foreach($results as $r)
    	     {
    	         $ret[] = new Model_Tuto1($r['id_tuto1']);
    	     }
     
    	     return $ret;
    	 }
    }
    Donc on voit bien je veux instancier ma classe.
    Mais lorque ce je vais sur le site sa dit classe introuvable.

    Est un probleme de "autoloader" ?

    Comment regler mon probleme ?


    merci

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    et le message ?

  3. #3
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Fatal error: Class 'Model_Tuto1' not found in C:\wamp\www\tuto\application\modules\default\controllers\IndexController.php on line 16

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    t'as quelle version du ZF ?

  5. #5
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    1.11.8

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pourquoi tu règles ça dans ton Bootsrap utilise le fichier ini du projet

  7. #7
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Bon j'ai trouvé la solution.

    Alors a ce que j'ai pu lire lorsque qu'on est dans le module default, on est pas obligé de prefxer ses classes pas un Default_

    Et bien il s'avere que c'est faux.

    Donc ma classe devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    class Default_Model_Tuto1 { }
    Quelqu'un peut m'aiguiller pour le prefix ?

  8. #8
    Membre éprouvé Avatar de Alcide_
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juin 2008
    Messages : 79
    Par défaut
    Je vais te paraître rabat-joie mais comme te l'a dit stealth35, les tutoriels sont là pour aider à comprendre le fonctionnement du Framework, il faut donc les suivre à la lettre et ne pas brûler les étapes...
    Désolé mais tes questions sont la preuve que tu n'as pas encore assimilé les prérequis.
    Le forum n'est là que pour répondre à des problèmes précis, il nous faudrait plus qu'un simple post pour t'expliquer les rouages de ZF.
    Tu devrais quand même trouver ce qu'il te faut dans les liens ci-dessous.
    Intro à ZF
    Bootstrapping

  9. #9
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    J'ai déjà lu tous ces posts.
    Sinon j'en serai pas la aujourd'hui.

    Mais quand sa fait 10 ans qu'on développe avec son propre framework fait maison, faut plus de temps a aprhender les autres framework car tous le monde n'a pas la même façon d'appréhender le contexte MVC, objet de la même manière.

    En tous cas merci a vous.

  10. #10
    Membre Expert
    Avatar de 5h4rk
    Homme Profil pro
    CTO at TabMo
    Inscrit en
    Février 2011
    Messages
    813
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CTO at TabMo
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2011
    Messages : 813
    Par défaut
    Il est donc possible dans ce cas là que le problème vient de ton appréhension au niveau du modèle MVC, car tous les framework fonctionne quasiment de la même façon en ce qui concerne le MVC.

  11. #11
    Inactif
    Inscrit en
    Octobre 2008
    Messages
    826
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 826
    Par défaut
    Et bien non, je ne rencontrer aucun probleme avec symfony ou cakphp.

    En revanche avec zend j'ai l'impression de devoir apprendre un nouveau language informatique.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/04/2009, 01h43
  2. Chargement de classe via dlopen
    Par Higestromm dans le forum C++
    Réponses: 4
    Dernier message: 18/05/2006, 16h14
  3. [Applet] Problème chargement de classe
    Par simsky dans le forum Applets
    Réponses: 1
    Dernier message: 08/05/2006, 19h31
  4. [SunOne] Problème de chargement de classe Xerces sous SunOne
    Par cocula dans le forum Glassfish et Payara
    Réponses: 3
    Dernier message: 11/01/2006, 15h46
  5. [Chargement de classe][noms de classe relatifs]
    Par freudy dans le forum Langage
    Réponses: 5
    Dernier message: 21/04/2004, 11h36

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