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 11/07/2008, 11h26   #1
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
Par défaut Où mettre une classe

Bonjour,

je dois parser des $variables pour supprimer les accents, j'ai le code suivant.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
 
$remplace = array( 
'à'=>'a', 
'á'=>'a', 
'â'=>'a', 
'ã'=>'a', 
'ä'=>'a', 
'å'=>'a', 
'ò'=>'o', 
'ó'=>'o', 
'ô'=>'o', 
'õ'=>'o', 
'ö'=>'o', 
'è'=>'e', 
'é'=>'e', 
'ê'=>'e', 
'ë'=>'e', 
'ì'=>'i', 
'í'=>'i', 
'î'=>'i', 
'ï'=>'i', 
'ù'=>'u', 
'ú'=>'u', 
'û'=>'u', 
'ü'=>'u', 
'ÿ'=>'y', 
'ñ'=>'n', 
'ç'=>'c', 
'ø'=>'0' 
); 
$titre = strtr($titre,$remplace);
Mais je ne sais pas si je dois faire un plugin, un helper, un model.

Où mettre ce genre de code pour le réutiliser?

merci de votre aide.
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2008, 11h32   #2
Membre éprouvé
 
Avatar de Sayrus
 
Inscription : décembre 2005
Messages : 818
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : décembre 2005
Messages : 818
Points : 456
Points : 456
Je ne connais pas très bien le modèle MVC, mais en toute logique, pourquoi ne pas faire simplement une classe regroupant toutes ces fonctions utiles (comme celle qui remplace les caractères accentués par exemple) et l'appeler via le framework?
__________________
Solutions pour concessions et garages automobiles =>
http://www.fastback.be
Sayrus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2008, 12h29   #3
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Tout dépend de l'endroit où tu veux l'utiliser.
Si c'est dans un controller => action_helper.
Si c'est dans une vue => view_helper.
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2008, 13h12   #4
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
Ok,

donc si je suis bien, il faut créer une classe

Code :
1
2
3
4
5
 
class My_class_Utils extend Zend_Controller_Action_Helper
{ 
 
}
qui se trouvera donc /library/My/Class/Utils.php

Et je l'instancie de façon normal ?

merci de votre aide.
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2008, 13h27   #5
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Citation:
Envoyé par MaitrePylos Voir le message
Ok,

donc si je suis bien, il faut créer une classe

Code :
1
2
3
4
5
 
class My_class_Utils extend Zend_Controller_Action_Helper
{ 
 
}
qui se trouvera donc /library/My/Class/Utils.php

Et je l'instancie de façon normal ?

merci de votre aide.
Oui pour tout.
Pour l'instancier, tu peux utiliser Zend_Controller_Action_HelperBroker::addHelper($helper); (voir http://framework.zend.com/manual/fr/...nhelper.broker).
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2008, 14h08   #6
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
Je nage un peu beaucoup là

donc dans mon index.php, j'ai ajouter ceci

Code :
1
2
 
Zend_Controller_Action_HelperBroker::addHelper(new My_Classe_Utils());
et il me sort une erreur
Code :
1
2
 
Catchable fatal error: Argument 1 passed to Zend_Controller_Action_HelperBroker::addHelper() must be an instance of Zend_Controller_Action_Helper_Abstract, instance of My_Classe_Utils given, called in /var/www/pontaury/html/index.php on line 23 and defined in /var/www/pontaury/library/Zend/Controller/Action/HelperBroker.php on line 71
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2008, 14h27   #7
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
A priori, comme dit le message, c'est que ta classe doit étendre Zend_Controller_Action_Helper_Abstract et non pas Zend_Controller_Action_Helper.
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2008, 14h42   #8
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
Au risque de paraître gossier, mais comment j'appelle mes méthodes.

j'ai tenter ceci sans résultat

Code :
1
2
3
4
 
$this->remplaceAccent();
$this_helper->getHelper('remplaceAccent');
$this_helper->_get('remplaceAccent');
Merci de ton aide
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2008, 16h38   #9
Membre Expert
 
Inscription : janvier 2005
Messages : 1 249
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : janvier 2005
Messages : 1 249
Points : 1 417
Points : 1 417
Voir la doc : http://framework.zend.com/manual/fr/...initialization
Pour faire simple :
Code :
1
2
$utils= $this->_helper->getHelper('My_Classe_Utils');
$utils->remplaceAccent($value);
vg33 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/07/2008, 01h37   #10
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
Salut

On dirait que tu as effectivement besoin soit d'un helper (action helper ou view helper selon le besoin), soit d'un filtre (pour le modèle ou pour la vue). Tu as pas mal d'indications ici : http://julien-pauli.developpez.com/t...actionhelpers/

Concernant le traitement en lui-même, je pense que tu peux aussi regarder du côté de //TRANSLIT avec iconv, c'est la méthode universelle pour ce type d'opérations.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/07/2008, 07h32   #11
Rédacteur/Modérateur
 
Avatar de MaitrePylos
 
Homme Gérard Ernaelsten
DBA & Dev PHP
Inscription : juin 2005
Messages : 3 183
Détails du profil
Informations personnelles :
Nom : Homme Gérard Ernaelsten
Âge : 39
Localisation : Belgique

Informations professionnelles :
Activité : DBA & Dev PHP
Secteur : Service public

Informations forums :
Inscription : juin 2005
Messages : 3 183
Points : 6 470
Points : 6 470
Merci de votre aide.

MaitrePylos
MaitrePylos est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 15h29   #12
Membre régulier
 
Inscription : juillet 2002
Messages : 149
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 149
Points : 80
Points : 80
C'est pas plutot un filtre qu'il faut utiliser dans ce cas ?
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
 
require_once 'Zend/Filter/Interface.php'; 
class My_Filter_Accent implements Zend_Filter_Interface
{
	public function filter($titre)
	{
 
$remplace = array( 
'à'=>'a', 
'á'=>'a', 
'â'=>'a', 
'ã'=>'a', 
'ä'=>'a', 
'å'=>'a', 
'ò'=>'o', 
'ó'=>'o', 
'ô'=>'o', 
'õ'=>'o', 
'ö'=>'o', 
'è'=>'e', 
'é'=>'e', 
'ê'=>'e', 
'ë'=>'e', 
'ì'=>'i', 
'í'=>'i', 
'î'=>'i', 
'ï'=>'i', 
'ù'=>'u', 
'ú'=>'u', 
'û'=>'u', 
'ü'=>'u', 
'ÿ'=>'y', 
'ñ'=>'n', 
'ç'=>'c', 
'ø'=>'0' 
); 
$titre = strtr($titre,$remplace);
 
	    return $titre;
	}
}
Et je le rangerai dans /library/My/Filter/Accent.php
SQUAL est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 15h38   #13
Rédacteur
 
Avatar de Yogui
 
Homme Guillaume Rossolini
Directeur technique
Inscription : février 2004
Messages : 13 720
Détails du profil
Informations personnelles :
Nom : Homme Guillaume Rossolini
Localisation : France

Informations professionnelles :
Activité : Directeur technique

Informations forums :
Inscription : février 2004
Messages : 13 720
Points : 17 355
Points : 17 355
@SQUAT : Mon commentaire sur iconv et //TRANSLIT est tout de même valide... Merci de ne pas refuser en bloc une proposition sous prétexte qu'une partie n'est pas idéale.
__________________
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework
Yogui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 15h49   #14
Membre régulier
 
Inscription : juillet 2002
Messages : 149
Détails du profil
Informations forums :
Inscription : juillet 2002
Messages : 149
Points : 80
Points : 80
Je ne dis pas le contraire, je pose avant tout une question. Je crois que c'est le role d'un filtre pour ce qu'il veut faire dans son 1er post.
SQUAL 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 04h16.


 
 
 
 
Partenaires

Hébergement Web