[Framework] PHPRedesign - Version imprimable +- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org) +-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38) +--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51) +--- Sujet : [Framework] PHPRedesign (/showthread.php?tid=5818) |
[Framework] PHPRedesign - qwarnant - 21-11-2011 Bonjour/bonsoir à tous, Je viens vous présenter un framework en cours de développement par moi-même, que j'ai nommé PHPRedesign. Introduction PHP est pour moi ma passion, j'en fais tous les jours pour mes loisirs depuis maintenant 6 ans. Avec le temps, j'ai pu explorer le langage en partie (il est trop important pour tout explorer!) et j'y ai connu ses nombreux avantages, mais aussi ses inconvénients, car tout n'est rose dans quelque langage de développement que ce soit. Composition du framework J'ai donc dressé une liste de ces avantages et inconvénients que j'ai comparé au second langage que je pratique le plus, le Java, dit orienté objet. Après des études, j'ai remarqué que les plus gros inconvénients du PHP pour moi était le manque de rigueur en certains points comme par exemple l'inexistence du typage (int, ...) dans les déclarations de variables et autres. On peut parfois se retrouver avec une variable ayant un type tout à fait différent de celui de base. Certains vont dire que c'est une des forces du langage, mais personnellement je trouve que c'est une lacune de ne pouvoir garder le contrôle de ses variables. C'est donc sur ce premier point que j'ai basé mon framework en gérant les IllegalArgumentException (type mismatch ...) Le second point, c'est le peu d'avancement de PHP pour des concepts orientés objets comme les Collections, les Maps, les Exceptions, ... J'ai donc tenté d'implémenter dans les limites du PHP toutes ces structures de données présentes en Java pour le PHP, car elles sont pour moi fortes utiles. J'ai combiné les avantages de PHP pour les tableaux, fournissant une classe de tableau permettant de contrôler son tableau, tout en le gardant associatif on indexé. Ensuite, j'ai travaillé le concept de "package" même si PHP ne gère pas ce point. Dans mon framework, un package est un dossier regroupant des classes ayant un but commun. La fonction import (comme en Java) importe un package en prenant le nom du folder. Suite de l'aventure Je compte développer, un à un, les concepts orientés objets présents dans le Java et d'autres langages et qui ne sont hélas pas présents dans le PHP. Mon but n'est pas de priver le langage de PHP de ses avantages, mais de combler ses lacunes et de compléter des concepts ou d'en rajouter. Lorsque mon framework sera bien avancé, je le mettrai à disposition de ceux que ça intéresse, j'espère qu'il y en aura ! Preview RE: [Framework] PHPRedesign - sharyma - 21-11-2011 voilà un projet intéressant et fort ambitieux : j'aime ! n'hésite pas à nous tenir au courant de tes avancées, en espérant que tu ne te lasses pas en cours de route (car ça risque de te prendre pas mal de temps à développer tout ça ) RE: [Framework] PHPRedesign - niahoo - 22-11-2011 Bon courage ! Essaie d'arriver rapidement à une version exploitable afin de pouvoir te servir de ton Framework pour en déceler les défauts et aussi pour garder la motivation à le développer. RE: [Framework] PHPRedesign - qwarnant - 22-11-2011 Merci, Les seuls problèmes que je rencontre pour le moment sont les limites du langage PHP. Par exemple, normalement Collection est une interface mais comme je dois contrôler le type des arguments passé aux méthodes, je suis obligé d'en faire une classe normale. Je laisse cependant le choix à l'utilisateur de la structure de données qu'il veut utiliser pour la Collection. (une structure qui doit être préalablement développée par moi) J'ai aussi recréé le concept de generics, sauf qu'ici on ne peut le mettre en haut dans le nom de la classe, il est donc passé en argument dans le constructeur. Cordialement RE: [Framework] PHPRedesign - srm - 22-11-2011 Et si tu donnais des exemples d'utilisation de ce dernier ? RE: [Framework] PHPRedesign - qwarnant - 22-11-2011 Exemple pour les types de base : Code PHP :
Ce n'est qu'un bref aperçu de tout le travail que j'ai déjà fait, vous pourrez mieux tester une fois que je mettrai le framework à disposition. :bave: RE: [Framework] PHPRedesign - srm - 22-11-2011 Donc en fait l'utilité c'est pour pouvoir faire : function(Int $a, String $b) c'est ça ? Ca va tout de même apporter beaucoup de lourdeur au code, ne vaut-il pas mieux utiliser un langage du genre Scala ? Et sinon tu devrais écrire ce passage ainsi :
RE: [Framework] PHPRedesign - niahoo - 22-11-2011 Yep ça risque de mouliner un peu. Faut voir si ça apporte vraiment des avantages conséquents. RE: [Framework] PHPRedesign - srm - 22-11-2011 C'est en gros rajouter une surcouche à tout l'ensemble des types de base pour avoir un truc plus propre et plus "langage typé", c'est un travail "intéressant" mais au final pas trop utile en réel, tu ne pourras que toucher de loin la force d'un langage typé. RE: [Framework] PHPRedesign - qwarnant - 22-11-2011 Bonjour, Ca alourdit en effet légèrement la façon de développer mais elle permet une plus grande rigueur et une plus grande maîtrise de ce qu'on fait. Si on essaye de mettre un objet non prévu pour une fonction, il y aura une ClassCastException lancée ou un IllegalArgumentException. Le but, en plus de la gestion des types de base est de fournir des interfaces, classes utiles comme Collection, Hashmap, ... qui ne sont pas implémentées en PHP et que je trouve forte utiles en Java. Preview avec mon travail de cette nuit/ce matin |