2010-10-02 6 views

Répondre

0

D'abord, j'ajoute cette ligne dans mon fichier de configuration. application.ini:

includePaths.library     = APPLICATION_PATH "/../library" 

Puis-je ajouter une classe

class App_Model_Helper { 
    public static function resultAggregation($results) {} 
    //.... all the helper you need 
} 

dans un fichier placé dans ..library\App\Model\Helper.php

C'est la seule manière que je trouvais au facteur le code que je l'utilise dans le modèle.

La méthode d'assistance peut alors être appelé à partir du modèle:

App_Model_Helper::resultAggregation($results); 

Je suis conscient que ce brise le OOD, donc si quelqu'un a une solution meilleure et plus propre que je serais très reconnaissant.

1

Dans Zend Framework il n'y a rien de défini pour les aides de modèles comme pour les aides de vue, cependant vous pouvez contourner ce problème tout en conservant la conception de l'application (évitez d'utiliser le dossier bibliothèque).

La façon dont je le fais est en ajoutant un dossier Helper dans les modèles un. Ensuite, vous devez nommer votre classe comme ceci:

class Application_Model_Helper_DateHelper 
{ 
... 
} 

Ensuite, l'autochargeur prendra soin de le trouver et de le charger.

Malheureusement, cette désignation est légèrement différente de celle que vous avez dans le dossier des vues. Dans le vues dossier, vous pouvez créer un dossier nommé aides et utiliser une convention de nommage comme:

class Zend_View_Helper_DarkBlueMenu extends Zend_View_Helper_Abstract 
{ 
... 
} 

Cependant, si vous nommez le dossier dans modèles comme aides puis les classes à l'intérieur ont pour être nommé comme ceci:

class Application_Model_helpers_DateHelper 
{ 
... 
} 
Questions connexes