Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 22-04-2010 17:29:53

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

[1.9.6][Bug]Ajout de type de ressources et modules

Hello,

Avant d'ouvrir un ticket de bug sur Zend, je voudrais savoir si certains ont eu ce problème. J'ai pas la dernière version, mais j'ai pas vu de ticket à ce sujet entre temps.

Si on regarde le code de "Zend_Application_Module_Autoloader" on voit ceci :

Code:

    $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',
            ),
        ));

Ce qui fonctionne très bien et prend bien en charge les modules. Par ex. j'ai deux modules, "front" et "admin" et je redéfinis totalement l'arbo.

Code:

app/
    core/
    domain/
    web/
        admin/
            forms/
                SuperForm.php
        front/
            forms/
                SuperForm.php

En indiquant simplement mon "module_path" dans la conf, je peux avoir grâce aux préfixes : "Form_SuperForm" et "Admin_Form_SuperForm", les deux fonctionnent, alors que la ressource "forms" n'est définie qu'une seule fois dans la classe d'autoload.

Jusque là tout va bien.

Maintenant, il est possible de définir de nouveaux types de ressources lors du bootstrap.
Exemple :

Code:

class Bootstrap extends Zend_Application_Bootstrap_Bootstrap
{
    
    protected function _initAutoload()
    {                
        $autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => '',
            'basePath'  => dirname(__FILE__),
        ));
        
        $autoloader->addResourceTypes(array(
            'actionhelper' => array(
                'namespace' => 'Helper',
                'path'      => 'helpers',
            )         
        ));

//        OU
//        $autoloader->addResourceTypes('actionhelper', 'helpers', 'Helper');                         
        
        return $autoloader;
    }
}

Donc là, c'est censé se comporter de la même façon on est d'accord ? Je dois pouvoir avoir "Helper_Toto" et "Admin_Helper_Toto" et dans l'arbo :

Code:

app/
    web/
        admin/
            helpers/
                Toto.php
        front/
            helpers/
                Toto.php

Et bien raté ça ne fonctionne pas.

Par contre, si je fais la même chose en dur dans la class ZF directement en ajoutant ma ressource au tableau d'origine, ça fonctionne :p


Alors bug ? C'est très très gênant en tout cas, ça bloque toute ma super arbo. génialissime modulable de la mort.


A+ benjamin.

Dernière modification par Delprog (22-04-2010 17:31:06)


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#2 23-04-2010 08:11:41

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: [1.9.6][Bug]Ajout de type de ressources et modules

J'ai déjà déposé le même bug similaire je crois.

En utilisant juste

Code:

$autoloader = new Zend_Application_Module_Autoloader(array(
            'namespace' => '',
            'basePath'  => dirname(__FILE__),
        ));

(sans rajouté de resource)
Mes nom de classe d'helpers  (et uniquement le nom de classe, pas de répertoire ou fichier) de vue doivent être préfixé par 'Zend_', alors quels se situes bien dans MON library/App/views/helpers/

Ca vient du chargeur du chargeur de helper et du Appnamespace qui est vide.
Je n'ai pas ce problème avec les autres resources (forms, action/helpers, models, ...)


----
Gruiiik !

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