2010-01-07 7 views
2

Ce site est construit en utilisant CakePHP 1.2 *placement de fonction élément dynamique CakePHP

J'ai un élément qui doit être placé dans plusieurs vues sous plusieurs contrôleurs. Cet élément est très dynamique, chaque fois qu'une page est chargée, elle doit appeler une fonction (qui est plutôt grande) et ensuite afficher ce qui a été retourné.

Il y a quelques options auxquelles j'ai pensé, mais je ne suis pas sûr que ce soit la bonne façon de procéder.

  • Placer cette fonction dans app_controller puis d'appeler en quelque sorte à partir de l'élément
  • créer une aide, puis l'inclure dans chaque contrôleur qui affiche l'élément.
  • créer un composant et de l'inclure ensuite dans chaque contrôleur qui affichera l'élément.

Toute aide est appréciée de la bonne façon. Actuellement, l'élément est placé sur plusieurs pages sous plusieurs contrôleurs et appelle la fonction en utilisant $this->requestAction() qui, d'après ce que je comprends, n'est certainement pas la bonne façon.

Merci d'avance!

Répondre

2

Eh bien, c'est une question délicate, peut-être que vous devriez donner un peu plus d'informations. Mais je vais essayer:

  • Si votre fonction fait partie de la logique de votre application, vous devriez en faire un composant.
  • Si cette fonction fait partie de la vue, vous devriez en faire une aide.
  • Si cette fonction doit être exécutée dans votre vue, vous pouvez également essayer $this->render();

Il est une question délicate, j'espère que cela pourrait vous aider, mais vous devez donner un peu d'informations supplémentaires.

+1

Merci beaucoup pour la perspicacité, désolé je ne suis pas sûr de la façon dont je pourrais être plus précis mais parce qu'il affiche les résultats de la fonction, il devrait être une aide. Je vous remercie! – user103219

+0

metro - à quel moment divisez-vous généralement les aides et les éléments? Pour moi, c'est quand j'essaie de décomposer un élément en différentes méthodes, mais je suis curieux de savoir comment les autres le font. Avez-vous déjà transmis des arguments à un élément, ou est-ce que cela vous aurait crié «aidez-vous»? Et finalement, auriez-vous un écho direct de l'aide, ou juste retournez la sortie, pour que l'élément invoquant l'écho? –

+1

Je ne suis pas un gourou de cakePHP, mais j'utilise des éléments chaque fois que je veux recycler certains formats compatibles avec le design. Cela pourrait être les triangles haut et bas de ce site, utilisés à la fois dans les questions et les réponses. L'assistant est cool tant que vous ne crachez pas trop de html (pensez à un assistant numérique pour pouvoir diviser par une virgule les milliers et les millions). Une règle simple: si elle implique trop de html et que vous voulez recycler, allez avec un élément. Sinon, un assistant est bien. Mes deux centimes. – metrobalderas