|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 3 889 ![]() |
Les développeurs PHP sont-ils fonctionophobiques ? C'est en tout cas ce que pense un jeune développeur allemand. Sur sa page GitHub, nikic déplore la surdominance de l'OOP sur la programmation procédurale et dénonce la pratique selon lui trop répandue de programmation orientée classes.
D'après lui, cette réticence à utiliser des fonctions viendrait principalement du chargement automatique des classes, une fonctionnalité aujourd'hui largement répandue qui permet le chargement automatique de classes à la demande, ce qui est nativement impossible avec les fonctions. Les développeurs PHP seraient donc tentés d'exprimer leurs besoin au travers de méthodes, ce qui conduit à une approche orientée-classes moins naturelle que l'utilisation de fonctions. nikic va jusqu'a dénoncer la pratique courante consitant à isoler chaque classe dans un fichier séparé et invite les développeurs à adopter l'approche Python où chaque fichier caractérise souvent un module et non une seule classe, permettant de ce fait l'usage naturel de fonctions. Source : L'article sur le blog de nikic Et vous ? Trouvez-vous également que l'usage des classes est parfois abusif voire contre-productif ? Préférez-vous l'approche procédurale ou objet ? Comment structurez-vous votre application ?
__________________
On vous a menti PHP, Injection de dépendances et composants La POO en PHP en 10 minutes pour moins Suivez-moi sur GitHub et TwitterN'oubliez pas de vous servir des bouttons , et
|
|
45
|
|
|
#2 |
|
Expert Confirmé
![]() ![]() Développeur informatique Inscription : février 2005 Messages : 3 030 ![]() |
Je sais pas trop ce qu'il veut dire. L'utilisation de classe ou développer en objet. Il est vrai qu'il y en a qui utilise des classes comme des sacs à fonctions.
Après, l'utilisation d'un fichier par fonctionnalité au lieu que ça soit par classe me semble pas idiot non plus. Il arrive qu'on ait besoin d'une classe qui soit toute petite,dommage d'utiliser un fichier rien que pour ça. PHP est fortement influencé par les critiques faite par le monde de Java et tente du coup de côtoyer le standard java tant que possible.
__________________
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !... |
|
|
00
|
|
|
#3 |
|
Inscription : octobre 2011 Messages : 46 ![]() |
En effet, PHP est déjà un très bon langage et très complet sans la moindre utilisation de la POO.
Pourquoi toujours vouloir programmer orienté objet si cela n'est pas nécessaire. Par contre, je trouve qu'il est plus clair de créer une classe par fichier (d'ailleurs c'est ce que l'on apprend au cours). Pour moi il est mieux de créer un dossier par module (comme Java, PHP) et non un fichier (comme python, ...). |
|
|
32
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Inscription : mars 2007 Messages : 16 ![]() |
J'ai pas la même vision des choses...
Pour moi du fait que le PHP soit relativement simple à prendre à main pour faire de petits sites web conduit à une utilisation massive du langage par des gens non-informaticien ou peu expérimenté. Du coup on se retrouve avec du code parfois assez crade et sans l'ombre de POO. Pour ceux qui ont plus de connaissance en programmation et qui utilisent la POO, je ne vois pas vraiment en quoi c'est un problème. Même l'utilisation bancal de la POO ou on fait quelques classes très générique avec 50 ou 100 méthodes du genre Tools() ou SiteWeb() qui regroupent tout et n'importe quoi ne me semble pas nécessairement pire que du code procédural. Surtout qu'il à l'air de dire que les gens font ça pour exploité l'auto-loading qui ne me semble pas un concept utilisé par des débutants. Donc, ça me semble curieux comme réflexion. L'idéal ça aurait été qu'il montre des exemples de code et de classe qu'il considère inutile, ça aurait été mieux pour comprendre ce qu'il veut dire. A propos de la technique 1 classe = 1 fichier je ne vois pas d'intérêt à faire ça. Surtout vu le prix moyen du fichier aujourd’hui. Enfin si, ça à du sens si on code avec notepad et pas un IDE qui intègre la navigation oui, mais bon... Le gros avantage 1 classe = 1 fichier c'est la facilité de réutiliser une classe (on copie juste le fichier en entier, pas besoin de copier/coller la classe qu'on veut réutilisé parmis 4 ou 5 autre classe). C'est aussi plus pratique lorsque bosse en groupe avec un serveur de versionning. C'est pas rare de bosser sur le même module, mais on bosse rarement sur la même classe. En faite en y réfléchissant, vu les IDE actuels, la notion de fichier physique est presque devenu inutile même. |
|
|
33
|
|
|
#5 |
|
Membre du Club
![]() Sans H Ugo Inscription : octobre 2009 Messages : 23 ![]() |
C'est un sujet de débat sans fin.
La popularité de Php viens principalement du fait qu'il peut être utilisé par un néophyte souhaitant un site sur trois pages développé dans la journée, comme de professionnels l'exploitant pour développer de vrais gros logiciels. C'est cet souplesse dans son mode d'utilisation qui a fait son adoption. La question n'est pas de connaitre et de fixer LA méthode d'exploitation de php, mais avant tout le contexte. Il serais une perte de temps d'installer Symfony pour un site de trois pages sans back office. Il serais difficile de développer, maintenir et versionner un système intranet gérant n bases de données de x Go dans un code purement procédural sans niveau d'abstraction et de séparation des différentes couches et à cela l'OO est très bien adapté. Son interrogation est louable, je pense que tout le monde se la pose, et ceux, régulièrement. Tout est une question de contexte, je ne pense pas que j'y trouverais une réponse un jour. |
|
|
71
|
|
|
#6 |
![]() ![]() ![]() ![]() Inscription : février 2005 Messages : 2 839 ![]() |
Mouai, ca c'est de l'actu qui sert a rien.
En plus, c'est complétement con et inutile ce qu'il dit. Place au troll ...
__________________
Besoin d'un site internet ? Contactez Wixiweb Suivez Moi sur GOOGLE+ Mes articles - Chargée d'étude, aménagement et développement du territoire - Camp de basket - Passion Sans Frontiere - |
|
725
|
|
|
#7 | |
|
Membre Expert
![]() Développeur informatique Inscription : juillet 2005 Messages : 543 ![]() |
Citation:
__________________
If it's free, you are not the customer, you are the product. |
|
|
|
114
|
|
|
#8 |
|
Futur Membre du Club
![]() Victorien ElvingerÉtudiant Inscription : juillet 2010 Messages : 12 ![]() |
La pratique de l'Orienté Objet (je parle de la méthodologie) n'est pas à remettre en cause elle apporte de nombreux avantages.
En revanche la simple utilisation de ce concept comme structure de stockage de fonction (donc leur utilisation en terme de module) est une mauvaise chose. Il est préférable dans ce cas d'utiliser de simples fonctions. Mais la déclaration de fonction ce fait de manière globale, ce qui peut poser des problèmes de conflits entre bibliothèque et de maintenance. Quant à mettre plusieurs classe dans le même fichier je ne suis pas convaincu. Pour moi une classe est la primitive de la modularisation orienté objet. |
|
41
|
|
|
#9 | |
![]() ![]() Olivier Développeur Web Inscription : août 2003 Messages : 2 497 ![]() |
Faire une classe quand une simple fonction peut suffire effectivement c'est idiot. C'est d'ailleurs pas rare de voire une classe qui peux simplement se remplacer par une fonction native de php.
Maintenant je me vois pas maintenir une appli complète en procédurale ou chaque fichier est un module. Citation:
__________________
Pry Framework php5 | Recherche CDI dev. Web sur Dijon et alentours. |
|
|
31
|
|
|
#10 | |
|
Membre Expert
![]() Jean-François CAMBOTDéveloppeur informatique Inscription : mars 2003 Messages : 1 007 ![]() |
Citation:
En PHP, rapport à C# nous avons la "chance" d'avoir 2 modes de programmation : 1- "A l'arrache" -> procédural 2 -"Professionnel" -> objet En C# on ne peut pas se poser cette question : tout est objet... Et tant mieux. J'adore PHP mais je suis toujours déçu de voir sa considération par les développeurs C# ou Java, justement dû à cause du mode "A l'arrache", encore très utilisé par des programmeurs ayant surtout très peur de l'objet. Pour moi PHP = Zend Framework, Symfony etc... Tout est objet et respecte le MVC (ce qui est le minimum syndical quand on fait une appli dépassant les 3 pages). Le seul fichier non objet : index.php , qui lance l'initialisation un peu comme le Global.asax en ASP.NET MVC.
__________________
.o0o__St@iLeR__oOo. Chef de projet / Développeur Silverlight / ASP.NET MVC - MCP ASP.NET 4 Zend Framework / Ajax (Jquery et ExtJS) Adobe Flash Builder (Flex) Ma librairie pour faire communiquer PHP et Silverlight "à la" WCF : http://code.google.com/p/phpservices-silverlight/ |
|
|
|
712
|
|
|
#11 | ||
|
Membre émérite
![]() Inscription : juillet 2010 Messages : 603 ![]() |
En fait ya même plus vraiment besoin de classes au sens strict , puisqu'on peut faires des modules du genre :
Code :
Code :
$myInstance = require("mymodule.php"); |
||
|
|
11
|
|
|
#12 | |
|
Membre chevronné
![]() ![]() Inscription : juin 2007 Messages : 567 ![]() |
Citation:
Dans une class tu y range tout de même littéralement des fonctions. Je trouve son raisonnement étrange, et pas du tout évolutif, suis-le seul ?
__________________
Conception / Dev |
|
|
|
41
|
|
|
#13 | |
|
Inscription : octobre 2011 Messages : 46 ![]() |
Citation:
Pourquoi les fichiers physiques peuvent être inutiles ? |
|
|
|
03
|
|
|
#14 |
|
Membre chevronné
![]() ![]() Inscription : juin 2007 Messages : 567 ![]() |
A la fois, j'ai lu l'article, et me dit que la question n'est pas de savoir si nous devons définir des class personnelles, ou utiliser des fonctions personnelles, mais plus de savoir à quel moment il est bon d'abstraire les objets du langage php déjà disponibles en php natifs ( qui à une incidence sur les version ), et à quel moment il est préférable d'utiliser des fonctions, quand on pense is_function va retourner false ;
__________________
Conception / Dev |
|
|
20
|
|
|
#15 |
|
Candidat au titre de Membre du Club
![]() Stan Développeur Web Inscription : février 2007 Messages : 17 ![]() |
Je suis tout à fait d'accord avec @ugo-sans-h
Ce que tu dis est vrai, tout dépend du projet. C'est d'ailleurs pour cela qu'il y a des consultants/développeur. Exemple, combien de personne sur le web avons-nous vue poser des questions sur symfony par exemple afin de créer un vulgaire petit blog ou bien petit site ?? Sur le web il y a les écho de technologie en vogue pour les geeks et celles pour les profesionnelles. L'engouement pour symfony2 a déteins sur des développeurs amateurs qui ne connaissaient même pas les frameworks pour certain. Identiquement j'ai bossé dans une web agency en tant que ergonome/intégrateur/développeur sous drupal. Nous n'utilision que drupal et donc par moment nous développions des sites vitrine avec drupal. Quel hérésie. Joomla par exemple a bénéficié d'une grande réputation sur le web, mais concrètement en utilisation professionnel, le cms reste tout de même limité de part sa structure et code plutôt bancale dans certaines parties. Même avec la version 2.5 si elle corrige beaucoup de manque, il reste encore des efforts à fournir. Nous en revenons à la même problématique qui est de savoir dans à quel contexte sommes-nous rattaché ? Est ce que l'utilisation d'un framework ou cms est nécessaire ? Si oui quel framework utiliser ? Quel architecture concevoir ? Devons nous utiliser une librairie de fonctions ou de class. |
|
|
33
|
|
|
#16 | |
|
Membre actif
![]() Étudiant Inscription : avril 2011 Messages : 50 ![]() |
Citation:
Il doit être très content le petit de se retrouvez en une d'une gros site français de développeurs, censé s'adresser aux "professionnels de l'informatique". L'équipe de DVP a une explication à fournir là ? |
|
|
|
105
|
|
|
#17 |
|
Membre Expert
![]() Jean-François CAMBOTDéveloppeur informatique Inscription : mars 2003 Messages : 1 007 ![]() |
DVP n'a pas d'explication à fournir...
Après voilà, c'est la tendance actuelle : bcp de développeurs prennent comme parole d'évangile le 1er blog en anglais venu. Il suffit qu'un gus aux USA écrive que Perl c'est de la bombe et si son blog est bien référencé ça y est : l'article est cité partout et ça fait débat. De tout façon aujourd'hui : tout fait débat. Tout se dit et son contraire...
__________________
.o0o__St@iLeR__oOo. Chef de projet / Développeur Silverlight / ASP.NET MVC - MCP ASP.NET 4 Zend Framework / Ajax (Jquery et ExtJS) Adobe Flash Builder (Flex) Ma librairie pour faire communiquer PHP et Silverlight "à la" WCF : http://code.google.com/p/phpservices-silverlight/ |
|
|
114
|
|
|
#18 | |
|
Membre actif
![]() Inscription : avril 2009 Messages : 131 ![]() |
Citation:
Si tu ecris quelques petit scripts php, bien sur tu pourras t'en sortir sans POO on le sais tous, à plus grand echelle tu ne peux pas te passer de la POO. |
|
|
|
23
|
|
|
#19 |
|
Invité régulier
![]() Inscription : avril 2007 Messages : 18 ![]() |
l'un des points forts de la POO est la référence qu'on peut faire aux objets dans la vie reèls, ce qui permet une meilleurs compréhension par les devs.
|
|
|
12
|
|
|
#20 |
|
Membre confirmé
![]() Développeur Web Inscription : avril 2007 Messages : 101 ![]() |
Pour moi, ça dépends du projet. J'ai un projet je n'ai qu'une seul classe, tout le reste est en procédural car l'approche objet n'apporte rien, elle complique même les choses. Mais ce n'est pas valable pour tout... Sur un autre projet, j'ai juste un fichier de fonctions qui pallie quelques manques de base et tout le reste est objet. Bref, je dirais : « ça dépends des cas. »
|
|
10
|
Copyright © 2000-2013 - www.developpez.com