Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1088 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  framework et utilisation des services

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

framework et utilisation des services

n°2307353
PierreC
Posté le 07-11-2017 à 10:25:44  profilanswer
 

Hello à tous,
 
  Je développe depuis 15 ans en php, et j'ai parfois un peu de mal avec les nouvelles méthodes de dev :)
 
  J'essaie surtout de savoir si ces nouveautés qui arrivent régulièrement, sont pertinentes à être utilisées. Car une nouvelle techno peut être fun, mais très mauvaise à terme si mal utilisées.
 
  Là je découvre les Services, issue du monde de symfony (bien que nous utilisons zend expressive). Je travail avec des développeurs qui veulent mettre des services partout (forcément ils viennent du monde de symfony 2).
 
  Sur le papier ca semble beau, mais j'ai l'impression que c'est un peu comme coder avec des variables global, mais avec des objets :)
 
  Vous en pensez quoi ? le débat est ouvert.
 
Merci
 
Pierre


---------------
Du tofu en Alsace : www.tofuhong.com
mood
Publicité
Posté le 07-11-2017 à 10:25:44  profilanswer
 

n°2307356
rufo
Pas me confondre avec Lycos!
Posté le 07-11-2017 à 10:37:37  profilanswer
 

Je ne développe pas avec Symfony, du coup, je suis allé voir ce qu'étaient les services : https://openclassrooms.com/courses/ [...] t-creation
 
Bon, ben, je vois pas la différence avec le design pattern Singleton et ce que ce genre de service apporte de plus :??:
 
Par contre, non, ce ne sont pas des variables globales (tout comme le singleton) : c'est plus propre.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2307378
PierreC
Posté le 07-11-2017 à 15:27:34  profilanswer
 

info que j'ai obtenu par t'chat avec un ami  
---
 ça dépend.Mais pour faire simple, un service est utile pour des trucs un peu touchy genre une connexion à la bdd ou alors pour des trucs à mutualiser comme l'appel à un code qui va chercher un avatar gravatar.
 
En clair : Code utilisé à plusieurs endroits, ça veut le coup de faire un service. Code utilisé spécifiquement dans une page, pas besoin d'un service.
---
 
Si y'a d'autre avis ils sont les bienvenues


---------------
Du tofu en Alsace : www.tofuhong.com
n°2307385
rufo
Pas me confondre avec Lycos!
Posté le 07-11-2017 à 16:44:39  profilanswer
 

N'empêche, l'explication donnée ne répond pas à ma question sur l'intérêt par rapport à un singleton. Dans mes applis, j'utilise un singleton pour gérer la connexion à la BD.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2307386
PierreC
Posté le 07-11-2017 à 16:46:52  profilanswer
 

un singleton c'est "old school" un service c'est plus récent donc forcément mieux :)


---------------
Du tofu en Alsace : www.tofuhong.com
n°2307387
rufo
Pas me confondre avec Lycos!
Posté le 07-11-2017 à 16:52:10  profilanswer
 

Nan mais sérieusement, une vrai explication.


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°2307388
PierreC
Posté le 07-11-2017 à 16:55:43  profilanswer
 

je sais pas encore, j'en saurais plus vendredi, après une réunion justement avec les "jeunes" qui doivent me convaincre d'utiliser des services au lieu d'instance classique.
 
Surtout que le code n'a nullement besoin de singleton, au contraire un jour on aura besoin de plusieurs instances d'un même objet. Mais ca ils ne l'ont peut être pas imaginé encore.


---------------
Du tofu en Alsace : www.tofuhong.com
n°2307488
czh
Posté le 08-11-2017 à 22:44:57  profilanswer
 

Je ne savais pas que ça pouvait s'appeler comme ça mais c'est le genre de truc que j'utilise.
Dans les faits un conteneur de service, c'est juste un objet qui en contient d'autres qui sont appelables par leur nom. On choisit des noms courts sans contraintes par rapport aux noms des classes utilisées, tout est bien nommé, bien rangé, c'est propre.
Le conteneur de services ne dure que l'exécution du script mais permet une persistance des objets qui ne sont initialisé qu'une fois (ce que fait le pattern singleton).
La différence avec les singletons c'est qu'on peut avoir autant de conteneur de service que l'on veut.
Dans la pratique, on utilise qu'un seul conteneur dans toute l'application (ce qui peut faire penser que ce n'est pas plus utile qu'un simple singleton).
Le conteneur de service peut offrir d'autres fonctionnalités que la simple instanciation comme des mécanismes de configuration unifié lors de l'initialisation d'un service (juste après l'instanciation de l'objet).
Et le conteneur de service fait indirectement du pattern factory, cela permet de ne pas avoir de déclaration de namespaces au niveau de l'implémentation. Ça minimise le nombre de ligne à retoucher en cas de renommage de namespace, de changement de librairie etc.
 
Un cas de bad practise : il est possible de mettre un conteneur de service en singleton.
 

PierreC a écrit :

Surtout que le code n'a nullement besoin de singleton, au contraire un jour on aura besoin de plusieurs instances d'un même objet. Mais ca ils ne l'ont peut être pas imaginé encore.


 
Un conteneur de service correctement conçu permet d'avoir plusieurs instances d'une même classe mais configurés/initialisés différemment. S'il existe une autre contrainte, c'est que le conteneur de service ne répond pas au besoin et donc il ne faut pas l'utiliser pour cet usage.


Message édité par czh le 08-11-2017 à 23:29:36

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  framework et utilisation des services

 

Sujets relatifs
[VB] Erreur si utilisation d'un ContextMenuStrip[C++] Utilisation fonction simple
[Python] Questions pratiques installation et utilisation d'OpenCVProblème utilisation librairie externe
Problèmes d'utilisation de JScrollPaneutilisation de Tkinter
[PERL/MySQL] Utilisation d'une variable dans la clause WhereUtilisation de variables avec VLookup
Utilisation de tableaux - programme débutant (besoin d'aide !)Utilisation de la fonction COUNT() avec des valeurs NULL
Plus de sujets relatifs à : framework et utilisation des services


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR