IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

Appeler une fonction créée dans Symfnoy


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2020
    Messages
    275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2020
    Messages : 275
    Points : 113
    Points
    113
    Par défaut Appeler une fonction créée dans Symfnoy
    Bonjour,

    Je voulais faire une fonction dans un controller.
    Mais cette fonction est longue et je voulais la découper en plusieurs fonctions.
    J'appellerai ensuite ces fonctions dans la fonction du controller .

    Mais où puis-je mettre l'ensemble de mes fonctions dans l'arborescence de Symfony et comment je les appelle ?
    Un dossier particulier ?
    La question en fait: il y a une façon de faire correcte, une convention ?

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2011
    Messages
    351
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2011
    Messages : 351
    Points : 582
    Points
    582
    Par défaut
    Salut,

    Citation Envoyé par Ushuango Voir le message
    La question en fait: il y a une façon de faire correcte, une convention ?
    Une seule façon correcte non (il y a plusieurs approches avec chacune leurs avantages/ leurs inconvénients), par contre effectivement il existe a minima des "grands principes" qui font plus ou moins consensus comme éviter d'avoir des "god objects", respecter les principes SOLID, etc (la documentation Symfony contient également une liste de bonnes pratiques "officielles").

    En gros dans une application Symfony toutes les classes présentes dans ton répertoire "src" sont des "services" (sauf certains sous-dossiers, cf. ICI). Un service c'est simplement une classe PHP qui "fait quelque chose" (cf. les deux premiers paragraphes ICI), ces services se trouvent "automatiquement" centralisés dans le "conteneur de services" (avec ceux provenant des dépendances que tu peux installer) et tu peux ensuite y accéder via "l'injection de dépendances" (cf. ICI et ICI).

    Donc dans ton cas tu peux créer des nouveaux services qui vont contenir la logique de tes fonctions puis les injecter dans ton contrôleur pour t'en servir.

    Citation Envoyé par Ushuango Voir le message
    Mais où puis-je mettre l'ensemble de mes fonctions dans l'arborescence de Symfony et comment je les appelle ?
    Là où tu veux dans le dossier "src" (sauf dans les sous-dossiers "exclus"), en fait tout dépend de ce font tes "services" (idem pour le nom). Tu peux éventuellement t'inspirer de ce qui est fait dans la démo officielle même si ça reste assez basique : https://github.com/symfony/demo/tree/main/src (garde à l'esprit que tu es libre d'organiser ton code comme cela te semble pertinent)

Discussions similaires

  1. [.net]Appeler une fonction située dans le code behind
    Par anto dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 20/05/2009, 13h05
  2. appeler une fonction javascript dans le code html
    Par kawther dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 16/05/2007, 16h40
  3. [PHP-JS] appeler une fonction javascript dans un lien
    Par kawther dans le forum Langage
    Réponses: 2
    Dernier message: 25/04/2007, 10h43
  4. Réponses: 6
    Dernier message: 02/10/2006, 12h13
  5. Réponses: 12
    Dernier message: 12/05/2006, 09h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo