Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 22-04-2010 14:23:29

Damien
Membre
Lieu: Tassin la Demi Lune
Date d'inscription: 22-03-2007
Messages: 88

Librairies perso inaccessibles avec Zend_Application et autoloader

Bonjour,

J'ai un petit souci. Je suis entrain de créer une première application avec Zend_Application. Je voudrais utiliser des librairies que j'avais créées sur d'autres projets.

Dans mes autres projets ces librairies se trouvaient dans un repertoire lib au même niveau que ZF.

Soit : lib/Zend pour le ZF et lib/App pour mes librairies perso.

J'ai fais la même chose sans omettre dans le index.php de faire le set_include_path qui va bien pour inclure mon dossier lib dans le path.

Nouveauté par rapport à mes anciens projets, je vais utiliser l'autoloader qui, d'après ce que j'ai compris, est nativement initialisé dans Zend_Application.

Si j'affiche pour include_path (avec la fonction get_include_path), je retrouve bien mon dossier dans la liste.

La librairie Zend est bien accessible et quand j'appelle des objets Zend (sans avoir fait un require ou Zend_Loader) ça fonctionne bien.

Le problème vient que quand je crée une class à partir d'une de mes class perso j'ai un message d'erreur comme quoi la class n'existe pas. Et que si je charge ma class au préalable avec un require_once ou un Zend_Loader ça fonctionne.

Fonctionne :

Code:

Zend_Loader::loadClass('App_Model');

class Default_Model_Essai extends App_Model { }

Ne fonctionne pas :

Code:

class Default_Model_Essai extends App_Model { }

Le message est, quand ça fonctionne pas,

Code:

Fatal error: Class 'App_Model' not found in G:\test\portail\application\modules\default\models\Essai.php  on line 2

Bien entendu, il existe un fichier Model.php dans le dossier lib/App et la class définie dans ce fichier s'appelle bien App_Model

Voila, si vous avez une idée pourquoi les class de Zend sont reconnues et pas celles de App, je suis preneur.

Hors ligne

 

#2 22-04-2010 14:25:34

Damien
Membre
Lieu: Tassin la Demi Lune
Date d'inscription: 22-03-2007
Messages: 88

Re: Librairies perso inaccessibles avec Zend_Application et autoloader

Une petite précision, si je ne fais pas appelle à ma class Default_Model_Essai, je n'ai pas le message d'erreur (ce qui est normal) mais j'ai bien ma page qui s'affiche comme il faut.

Hors ligne

 

#3 22-04-2010 15:10:51

throrin19
Membre
Date d'inscription: 01-03-2009
Messages: 318
Site web

Re: Librairies perso inaccessibles avec Zend_Application et autoloader

as tu ajouté le namespace App_ à ton projet (bootstrap ou .ini)

Hors ligne

 

#4 22-04-2010 15:53:22

philippe
Administrateur
Lieu: Grenoble
Date d'inscription: 01-03-2007
Messages: 1624

Re: Librairies perso inaccessibles avec Zend_Application et autoloader

Et pour le faire c'est le code suivant :

Code:

Zend_Loader_Autoloader::getInstance()->registerNamespace('App_');

A+, Philippe


twitter : @plv ; kitpages.fr : Création de sites internet à Grenoble et Paris

Hors ligne

 

#5 22-04-2010 16:23:20

Damien
Membre
Lieu: Tassin la Demi Lune
Date d'inscription: 22-03-2007
Messages: 88

Re: Librairies perso inaccessibles avec Zend_Application et autoloader

Ok, ça veut dire que seul le namespace Zend_ est présent par défaut et je ne l'avais pas vu !!

Merci ça fonctionne nickel.

J'ai juste préféré le mettre dans le application.ini

Code:

autoloaderNamespaces[] = "App_"

C'est vraiment excellent cette nouvelle façon de faire avec Zend_Application. Je trouve ça vraiment beaucoup plus clair, maintenable, portable, ...

PS : je peux pas mettre [résolu] dans le titre : il doit être trop grand

Dernière modification par Damien (22-04-2010 16:26:34)

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