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 25/09/2007, 14h29   #1
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 41
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : janvier 2007
Messages : 41
Points : 35
Points : 35
Par défaut Les controllers et leurs actions

Bonjour,

J'ai passé une bonne année dans le monde RoR et redécouvre le php grace au framework Zend

J'aurais eu quelques petites questions touchant les controllers et leurs actions.

Selon mon code ci-dessous, je voudrais lancer une fonction (action) du style refresh de la cache lorsque j'appelle une action (ici index).

1. la fonction "refreshCacheAction", suis-je obligé de mettre "Action" à la fin sachant qu'elle ne sera pas appelée directement?
2. Est-ce correct de mettre directement les fonctions en public/private?
3. Dans ce cas là, y a-t-il un autre endroit pour mettre la fonction "refreshCacheAction"? Dans un helper?

Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<?php
class CoreController extends Zend_Controller_Action 
{
  public function indexAction(){
    refreshCacheAction();
  }
 
  private function refreshCacheAction(){
    [...]
  }
[...]
coolcoco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 14h33   #2
Membre éclairé
 
Avatar de Inazo
 
Gérant - société de développement web
Inscription : avril 2007
Messages : 290
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Gérant - société de développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2007
Messages : 290
Points : 360
Points : 360
Bonjour,

Je suis pas utilisateur du Zend Framework, sûrement une erreur de ma part, mais bon je pense pouvoir t'aider un peu.

Je ne vois pas trop pourquoi tu as fait une fonction IndexAction qui à pour seul but d'appeler refreshCacheAction ?

Pourquoi ne pas déclarer directement la fonction refreshCacheAction en tant que public ?

Cordialement Inazo.
Inazo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 14h34   #3
Membre chevronné
 
Avatar de haltabush
 
Développeur Web
Inscription : avril 2005
Messages : 726
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 726
Points : 790
Points : 790
Personnellement, mais ce n'est sans doute aps la bonne méthode, je mets mes petites fonctions sans le "Action" (sinon ta fonction pourra être appelée via l'url) en private. Je n'ai pas de soucis, mais je ne trouve aps ça super propre,c 'est sur.
__________________
HADOPI : black-out du net!
haltabush est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 14h40   #4
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 41
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : janvier 2007
Messages : 41
Points : 35
Points : 35
Citation:
Envoyé par Inazo Voir le message
Bonjour,

Je suis pas utilisateur du Zend Framework, sûrement une erreur de ma part, mais bon je pense pouvoir t'aider un peu.

Je ne vois pas trop pourquoi tu as fait une fonction IndexAction qui à pour seul but d'appeler refreshCacheAction ?

Pourquoi ne pas déclarer directement la fonction refreshCacheAction en tant que public ?

Cordialement Inazo.
Merci pour la réponse rapide. Ben en fait, la j'ai simplifier au maximum, en fait dans la fonction indexAction, je fais d'autre truc.
coolcoco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 14h41   #5
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 41
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : janvier 2007
Messages : 41
Points : 35
Points : 35
Citation:
Envoyé par haltabush Voir le message
Personnellement, mais ce n'est sans doute aps la bonne méthode, je mets mes petites fonctions sans le "Action" (sinon ta fonction pourra être appelée via l'url) en private. Je n'ai pas de soucis, mais je ne trouve aps ça super propre,c 'est sur.
Hummm... Ok, merci. Mais lorsque c'est déclaré un private, c'est automatiquement inaccessible par url non?
coolcoco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 14h46   #6
Membre éclairé
 
Avatar de Inazo
 
Gérant - société de développement web
Inscription : avril 2007
Messages : 290
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Gérant - société de développement web
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : avril 2007
Messages : 290
Points : 360
Points : 360
Par définition un élément déclaré en private dans un objet n'est accessible que dans cet objet. Tu ne peux même pas l'utiliser en héritage.

Cordialement Inazo.
Inazo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 14h49   #7
Membre chevronné
 
Avatar de haltabush
 
Développeur Web
Inscription : avril 2005
Messages : 726
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 726
Points : 790
Points : 790
Oui, mais ça doit générer une erreur PHP au lieu d'une exception noControlleurAction (enfin je suppose, j'ai pas testé).
__________________
HADOPI : black-out du net!
haltabush est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 14h56   #8
Nouveau Membre du Club
 
Inscription : janvier 2007
Messages : 41
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : janvier 2007
Messages : 41
Points : 35
Points : 35
Citation:
Envoyé par haltabush Voir le message
Oui, mais ça doit générer une erreur PHP au lieu d'une exception noControlleurAction (enfin je suppose, j'ai pas testé).
Ok! Donc si je veux mettre une méthode dans un controller, c'est sans le Action et là impossible d'y accéder depuis une url.

Donc, je n'ai pas besoin de définir public/private?
coolcoco est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/09/2007, 15h00   #9
Membre chevronné
 
Avatar de haltabush
 
Développeur Web
Inscription : avril 2005
Messages : 726
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : avril 2005
Messages : 726
Points : 790
Points : 790
Dans le doute, ça coute rien de rajouter "private" ^^
__________________
HADOPI : black-out du net!
haltabush est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/09/2007, 16h18   #10
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
Après, si tu veux que cette fonction soit disponible dans tous les controllers, tu peux en effet utiliser un action helper.
vg33 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 05h35.


 
 
 
 
Partenaires

Hébergement Web