Utilisation d'une classe / espace de noms avec Zend Framework
-
21-09-2019 - |
Question
EDIT: Des questions supplémentaires:
- dois-je ajouter le « .php » à la fin de
new NAMSPACE_CLASSNAME
- Puis-je accéder à un package Zend dans mon contrôleur / modèle, pour exemple:
/ * // contrôleur // Méthodes dans un * /
méthode $ client = new Zend_Http_Client ( ' http://example.org ', array ( 'maxredirects' => 0, 'Timeout' => 30));
Salut,
comme je l'ai déjà demandé Comment ajouter 3ème partie lib ZendFramework Je voulais aussi demander si ma bibliothèque est disponible dans chacun de mes controllers
, models
, views
etc.
Ne l'enregistrement d'un espace de noms et autoloading ses classes signifie, que si je me inscrire 'MyClassXY_'
permet d'utiliser 'MyClassXY_someMethod'
L'autre partie de ma question consiste à utiliser une classe interne Zend / composant / méthode dans mon contrôleur.
Comme je sais que je peux faire CakePHP App::import('appIwantToLoad')
ou utiliser un component
pour avoir une classe / composant CakePHP disponible à mon contrôleur / modèle.
ZendFramework semble un peu différent:
J'ai entendu parler « usine » méthode (s) qui instancie par exemple un Cache
de Object
en utilisant un tableau de paramètres mis dans la méthode de fabrication.
Si vous ne comprenez toujours pas ce que mon problème est sur le point, je tente de vous donner un exemple simple:
Je suis assis devant mon contrôleur et je veux accéder à l'ACL ou le module de cache de ZendFramework. Je ne l'ai pas mis tout espace de noms spécifique à charger (pour charger juste « Default_ ») et je ne l'ai pas mis une ressource spécifique à charger (à l'exception du FrontController et toutes les autres ressources de base MVC).
Maintenant, je peux simplement utiliser ($Namespace_Module_AdditionalStuff
)
$ZendModuleXY = $Zend_Module_AdditionalStuff::constructionMethod
d'accès globaly telle ou telle classe ou méthode?
Merci beaucoup.
La solution
Si vous configurez autoloading pour votre MyClassXY lib, vous pouvez utiliser une classe dans ce répertoire. Par exemple:
//if there is library/MyClassXY/Foo.php with class MyClassXY_Foo
new MyClassXY_Foo
//is valid
b) Vous pouvez stocker vos ressources dans Zend_Registry .
Zend_Registry::set('dbConnection', $resource);
class App_Another_Class
{
/* */
$resource = Zend_Registry::get('dbConnection');
}