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 :

Intégrer une ressource utilisateurs à une appli MVC


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut Intégrer une ressource utilisateurs à une appli MVC
    Salut à tous,
    Je travail depuis bientôt quelques mois sur Zend framework avec les ateliers de Julien Pauli, alors je suis confronté au problème suivant:

    Zf prévoir lorsqu'on utilise Zend_Application dans Zend_Application_Modules_Autoloader un ensemble d'espace de nommage pas défaut tels que forms,plugins,models etc.. Ce qui permet d'étendre les classe zf par exmple dans le répertoire /library/App j'étends Zend_Form en App_Form que j'utilise ensuite dans une classe Form_Login du répertoire application/form ce qui permettra de faire un autoloader lorsque pas exemple dans mon contrôleur je ferai un . Là c ok

    Mon problème est le suivant:
    si j'étends par ex: zend_Acl en App_Acl, dans quel répertoire doit je stocker mes classes pas ex: My_Acl qui héritera de App_Acl pour pourvoir bénéficier de l'autoloader lorsque je ferai un dans mes contrôleurs.

    Voilà j'esper que je me suis débrouillé pur être compréhensible.

    Merci d'avance pour vos réactions.

  2. #2
    Membre Expert Avatar de nosferapti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    1 157
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 157
    Par défaut
    si dans le fichier index.php, le répertoire "library" est ajouté au "include_path", le fichier de la classe My_Acl doit se trouver dans le répertoire "library/My" et doit s'appeler "Acl.php"

  3. #3
    Membre averti
    Inscrit en
    Février 2007
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 20
    Par défaut reaction
    Salut nosferapti et merci tout d’abord pour ta réaction.
    Ta suggestion est correcte, mais je tiens à te rappeler que je dispose déjà dans le répertoire library/App d’un fichier Acl.php qui contient la classe App_acl. Voilà un aperçu de cette classe.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    class App_Acl extends Zend_Acl
    {
         /**
         * Rôle par défaut
         *

    Donc c’est plutôt cette classe que j’étends dans un fichier Acces.php.
    Voilà un aperçu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    class My_Acces extends App_Acl
    {

    Alors ma préoccupation est la suivante :
    Zf prévoir lorsqu'on utilise Zend_Application, dans Zend_Application_Modules_Autoloader un ensemble d'espace de nommage pas défaut tels que form, plugin, model etc..

    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
    <?php
    class Zend_Application_Module_Autoloader extends Zend_Loader_Autoloader_Resource
    {
        public function __construct($options)
        {
            parent::__construct($options);
            $this->initDefaultResourceTypes();
        }
     
        public function initDefaultResourceTypes()
        {
            $basePath = $this->getBasePath();
            $this->addResourceTypes(array(
                'dbtable' => array(
                    'namespace' => 'Model_DbTable',
                    'path'      => 'models/DbTable',
                ),
                'form'    => array(
                    'namespace' => 'Form',
                    'path'      => 'forms',
                ),
                'model'   => array(
                    'namespace' => 'Model',
                    'path'      => 'models',
                ),
                'plugin'  => array(
                    'namespace' => 'Plugin',
                    'path'      => 'plugins',
                ),
                'service' => array(
                    'namespace' => 'Service',
                    'path'      => 'services',
                ),
                'viewhelper' => array(
                    'namespace' => 'View_Helper',
                    'path'      => 'views/helpers',
                ),
                'viewfilter' => array(
                    'namespace' => 'View_Filter',
                    'path'      => 'views/filters',
                ),
            ));
            $this->setDefaultResourceType('model');
        }
    }


    Alors comment faire pour que zf reconnaisse automatiquement un espace de nommage utilisateur dont la path se trouve dans APPLICATION_PATH,par exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'my' => array(
                    'namespace' => 'My',
                    'path'      => 'mys',
                )
    sachant que dans le bootstrap nous avons :

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

    En gros :
    Est – il possible d’ajouter un sous répertoire mys dans le répertoire application dans lequel je pourrai stocker le fichier Acces.php contenant la classe My_Acces qui hérite de App_Acl ?
    Si oui, comment bénéficier de l’autoloader sachant que mon bootstrap contient la fonction _initAutoload() ci-dessus.
    Merci.

  4. #4
    Membre très actif
    Avatar de FERDIKAM
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2005
    Messages : 123
    Par défaut
    Moi généralement la méthode que j'utilise c'est qu'après avoir écrit la fonction d'autoload comme tu la fè, je crée un dossier dans le dossier library comme par exemple on dossier My. Sans oublier le dossier library est dans mon include_path.
    ensuite dans mon fichier application.ini j'écris ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    autoloadernamespaces[] = "My_"

  5. #5
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Ce que tu veux faire relève de la gestion de module

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $loader = new Zend_Application_Module_Autoloader(array(
        'namespace' => 'Mys',
        'basePath'  => APPLICATION_PATH . '/My',
    ));
     
     
    $my_var = new Mys_classe();

Discussions similaires

  1. Réponses: 7
    Dernier message: 25/03/2011, 10h52
  2. [XL-2002] Macro de comparaison d'une cellule d'une feuille avec une cellule d'une autre feuille.
    Par steelydan dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/09/2010, 12h59
  3. Réponses: 4
    Dernier message: 15/10/2009, 13h33
  4. [XL-2007] Afficher une checkbox dans une feuille si une checkbox d'une autre feuille est cochée
    Par JessieCoutas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/08/2009, 13h35
  5. Recherche une valeur d'une cellule dans une colonne d'une autre feuille
    Par kourria dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 21/06/2007, 13h48

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