Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/07/2011, 07h30   #1
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Par défaut Charger ses classes

Bonjours,

Encore un probleme....
Je souhaiterai inclure mes classes.

Mes classe se situent dans
Donc j'ai creer une classe Char.php

Et j'essaye de l'inclure
Code :
1
2
<?php
$char = MyClass_Char_Char;
Voici ma classe
Code :
1
2
3
4
<?php
class MyClass_Char_Char {
 //
}
Ou est ce que j'ai commis une erreur ?

Je tiens a preciser, j'appel ma classe dans la vue, je sais pas si sa change quelque chose...
Merci
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 08h01   #2
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
A quoi te sert :
Code :
1
2
<?php
$char = MyClass_Char_Char;
Sinon généralement dans library, je mets un dossier qui porte le nom de mon namespace et je n'ai donc aucun problème pour appeler mes classes.

Utilise tu l'autoloader ?

Et quel erreur est retourné ?
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 08h10   #3
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
C'est une classe qui gere des methodes sur le traitement de chaine de caracactere.
Erreur en recopiant le code c'est plutot :
Code :
1
2
3
 
<?php
$char = new MyClass_Char_Char;
A quoi ressemble l'autoloader ?

Je pense que j'ai sa, vue que les classe se charge toutes seule, si on nomme bien les classe.

Pour l'erreur, c'est class xx not found...
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 08h31   #4
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
et si tu remplace MyClass par ton namespace ?
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 08h36   #5
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Alors mon namespace c'est
Code :
1
2
 
appnamespace = "Application"
Pour simplifier tous, j'ai creer un dossier My dans le dossier library ce qui donne
Code :
1
2
3
 
library/My
#je met toutes mes classe personnel reutilisable dedans
Dedans je met Char.php

Ma classe :
Code :
1
2
 
class Application_My_Char {}
J'essaye de l'appeler
Code :
1
2
 
$char = new Application_My_Char;
Mais toujours la meme erreur.
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 10h11   #6
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
Essaye de nommer ton dossier Application a la place de My et d appeler ta classe Application_Char
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/07/2011, 10h30   #7
Nouveau Membre du Club
 
Homme
Étudiant
Inscription : juin 2011
Messages : 34
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : juin 2011
Messages : 34
Points : 27
Points : 27
Bonjour,

J'ai également eu un souci sur les inclusions de classes.

Tu peux utiliser __autoload().

Si cela t'intéresse tu peux aller jeter un coup d'oeil sur la discussion que j'avais ouverte :
http://www.developpez.net/forums/d11...ation-couches/

Le fonctionnement et l'implémentation de l'auto chargement sont bien expliquées.

Sinon tu peux également jeter un oeil ici :
http://blog.phppro.fr/?post/2009/08/...es-classes-PHP

Bonne journée.
West-tck est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2011, 12h49   #8
Membre actif
 
Avatar de shadypierre
 
Inscription : février 2009
Messages : 250
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : février 2009
Messages : 250
Points : 197
Points : 197
@ 5h4rk :
Citation:
Envoyé par 5h4rk Voir le message
Essaye de nommer ton dossier Application a la place de My et d appeler ta classe Application_Char
...

@ thebarbarius :
Citation:
appnamespace = "Application"
ça correspond au classe de ton application pas au classe de librairie, si tu veux ajouter un namespace tu ajoute
Citation:
autoloaderNamespaces[] = "My_"
dans ton application.ini


@West-tck : Y'a rien de plus simple que l'autoload avec ZF et quand tu dis :
Citation:
Tu peux utiliser __autoload().
tu blague j'espère?
shadypierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2011, 17h43   #9
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
Citation:
Envoyé par shadypierre Voir le message
@ 5h4rk :

...

@ thebarbarius :

ça correspond au classe de ton application pas au classe de librairie, si tu veux ajouter un namespace tu ajoute dans ton application.ini


@West-tck : Y'a rien de plus simple que l'autoload avec ZF et quand tu dis : tu blague j'espère?
Il peut mettre le namespace qu'il veut, nous n'avons pas à juger, le fait de mettre Application n'a ici aucun rapport avec le dossier application à la base de son application, par contre je ne dis pas que cela est judicieux mais au final ce que tu lui dis de faire reviens à ce que j'ai indiqué, mis à part que toi tu préfère le faire changer de namespace.

Bref tout ça pour dire qu'il serait bien de ne pas mettre des smileys ou commentaire n'ayant lieu d'être.

Merci
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2011, 19h56   #10
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Alors j'ai la solution.

Pour information il y a apparemment 2 types de namespace

Code :
1
2
3
 
appnamespace = "Application"
autoloaderNamespaces[] = "My_"
Voila, en nommant mes class :
Sa marche.

J'espere que sa en aidera d'autre.

Merci a vous tous.
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2011, 21h40   #11
Membre actif
 
Avatar de shadypierre
 
Inscription : février 2009
Messages : 250
Détails du profil
Informations personnelles :
Localisation : France, Loire Atlantique (Pays de la Loire)

Informations forums :
Inscription : février 2009
Messages : 250
Points : 197
Points : 197
@5h4rk : oui mais la tu as pas suivi il ajouter pas de namespace il utilisait celui de l'application...

@thebarbarius : heureusement que c'est exactement ce que je t'ai écris jutste au dessus
shadypierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2011, 22h00   #12
Modérateur
 
Homme Loïc
Développeur Web
Inscription : février 2011
Messages : 678
Détails du profil
Informations personnelles :
Nom : Homme Loïc
Âge : 26
Localisation : France, Hérault (Languedoc Roussillon)

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : février 2011
Messages : 678
Points : 1 041
Points : 1 041
Ah oui en effet je n avais pas vu son erreur, il faut surtout dire que je ne fonctionne pas du tout ainsi
5h4rk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/07/2011, 22h10   #13
Membre habitué
 
Avatar de thebarbarius
 
Inscription : octobre 2008
Messages : 745
Détails du profil
Informations forums :
Inscription : octobre 2008
Messages : 745
Points : 139
Points : 139
Citation:
Envoyé par shadypierre Voir le message
@5h4rk : oui mais la tu as pas suivi il ajouter pas de namespace il utilisait celui de l'application...

@thebarbarius : heureusement que c'est exactement ce que je t'ai écris jutste au dessus
Oui et c'est a grace a sa que j'ai resolue le probleme.

J'explique juste pour les autres.

Merci encore
thebarbarius est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h30.


 
 
 
 
Partenaires

Hébergement Web