2011-01-15 4 views
0

Mon application utilise des classes constituées de fonctions, les fonctions utilisent normalement "return $ var" avec un résultat de leur travail. Je me demande, si au lieu de "retour" je vais faire écho le résultat (un tableau) directement à partir de la fonction, est-ce acceptable? Juste dans certains cas, c'est plus pratique pour moi. Merci.Utiliser les fonctions PHP dans les classes

Répondre

4

Il est préférable de séparer la partie "logique" de votre application et la partie "vue" de celle-ci.

Je pense qu'il est préférable de laisser le "retour" sur vos méthodes et faire écho les résultats dans la partie "font-end" de votre site web.

P.s. Jetez un oeil à MVC design pattern :) Il est vraiment bon de comprendre comment diviser logiquement votre application.

0

Il n'y a absolument rien de mal à avoir certaines fonctions/méthodes qui écho et d'autres qui reviennent - en fait je m'attendrais à ce que la plupart des applications Web utilisent un mélange de ces fonctions.

Cependant, je considère ce qui suit:

  1. Vous aurez probablement envie de garder le nombre de fonctions « de sortie » (par exemple: les fonctions qui font écho) au minimum pour qu'il y ait moins de zones il faut vérifier les problèmes de script intersites et corriger la gestion des entités, etc.

  2. Vous devez toujours essayer de séparer le calcul ou la partie «exécution» de la fonctionnalité de la sortie (une séparation des préoccupations à un niveau très basique). nivelle tu le feras).

0

C'est acceptable - mais cela peut réduire la flexibilité et la portabilité de vos classes; Que se passe-t-il si vous ou quelqu'un d'autre veut obtenir votre tableau de résultats et agir sur celui-ci (ou sur certains des clés/vals) avant de l'afficher?

Pensez toujours à la portabilité - si votre fonction peut être utilisée d'une autre manière que celle utilisée au moment où vous l'écrivez, rendez-la aussi portable que possible.

0

Eh bien, l'écho d'un tableau se traduira par une sortie de la chaîne Array() en PHP.

Si vous vouliez dire: en écho aux résultats de ce tableau à partir de la fonction, il est acceptable mais pas vraiment recommandé: théoriquement fonctions devraient avoir rien à voir avec la production. Vous devez leur donner des valeurs pour les ont traitées et vous redonner le résultat de ce traitement - si vous n'avez pas besoin les valeurs renvoyées pour un traitement plus, pourquoi auriez-vous besoin des fonctions du tout, au moins dans le contexte des applications web complexes?

Ceci était la partie concernant strictement votre question.

Il y a un point plus général à faire, cependant, et qui est: la présentation (ce que les utilisateurs voient) doivent être séparés des procédures. La manière la plus simple d'y parvenir consiste simplement à appeler vos fonctions (avec les données de $ _GET, $ _POST ou l'URL) à partir de vos pages html/php; Si vous voulez apprendre une approche cool qui vous sera très utile à l'avenir, consultez le modèle MVC et certains frameworks MVC.

+0

C'est un module de gestion de bannière. J'appelle la fonction avec plusieurs paramètres pour le ciblage, il effectue une requête SQL, obtient des résultats, les transmet à une autre classe pour la pondération et obtient un tableau d'ID. Si je les traite directement, toutes les autres variables disponibles (image de bannière, textes, etc.) Mais si je retourne le tableau tel quel (id seulement), je devrai exécuter une autre fonction pour obtenir les paramètres manquants, et plusieurs fois - selon sur le nombre de publicités. Je pensais qu'il est préférable de l'éviter pour des considérations de performance ... – ted

0

Il n'y a rien de mal à écho une sortie par une méthode d'une classe, à moins qu'il est contre modèle de conception que vous utilisez et si vous développez une application non triviale, vous devez utiliser un.

Le plus populaire est ce que l'on appelle le modèle Model-View-Controller (MVC), où la sortie doit être renvoyée uniquement par les méthodes sélectionnées des classes View. Les méthodes des autres classes doivent se soucier uniquement de leur métier et laisser la vue afficher toutes les sorties. Mais c'est l'un des modèles de conception et vous n'avez pas besoin de l'utiliser.

Questions connexes