Aller au contenu

Et si on construisait un framework PHP ?


vincedo

Sujets conseillés

"Quoi ?? Un framework de plus ? Pas question !"

Lisez jusqu'au bout, il se pourrait que vous changiez d'avis.

Le problème

J'ai besoin d'une base de code solide sur laquelle construire des sites Web plutôt que de ré-inventer la roue à chaque fois. Des tas de concepteurs de sites sont dans le même cas que moi. Construisons une base de code commune (un framework) en rémunérant de bons développeurs pour le faire.

Le concept

  • Le framework est puissant et flexible ; il doit pouvoir servir de base à n'importe quel type de site Web.
  • Le framework s'adresse aux développeurs, pas aux utilisateurs finaux : il est constitué d'une série de classes/fonctions qui accélérent le développement. C'est Cake, ça n'est pas Joomla.
  • Quelques fonctionnalités : gestion de l'identification et des permissions, URL propres, internationalisation, séparation du code et de la présentation (MVC), génération de HTML valide, gestion automatisée des formulaires (génération, validation...), tout élément du framework peut être "taggé" (module de taxonomie)...

La technique

  • PHP/MySQL.
  • Uniquement du PHP 5 orienté objet.
  • Respect des bonnes pratiques de codage.

Quel intérêt ?

  • Le framework est open-source, tout le monde pourra l'utiliser.
  • Le framework est sponsorisé par les utilisateurs ou sociétés qui aimeraient l'utiliser (les développeurs toucheraient une "prime" pour chaque classe/module développé). En contrepartie, chaque sponsor participe à l'élaboration du framework.
  • Pour un développeur PHP : apprendre, augmenter ses compétences, partager ses connaissances, valoriser son profil.
  • On cause en français (la plupart des frameworks sont en anglais).

Attention, ce message n'est pas de la pub ni une offre d'emploi déguisée. Je ne fais que m'interroger sur la validité d'un tel modèle (sponsoriser l'open-source pour le rendre plus efficace).

Et vous, qu'en pensez-vous ?

Lien vers le commentaire
Partager sur d’autres sites

J'en pense que tu as l'air très motivé ;)

Personnellement je préfère utiliser mon propre framework et faire appelle à des composants PEAR si besoin...

Vu que c'est un peu la mode du framework et qu'ils en existent déjà des dizaines (voir centaines ? :unsure: ), je pense qu'il va falloir que tu trouves une réelle spécificité pour réussir à regrouper des personnes sur ce projet.

Edit : oups :blush: au final je n'avais pas répondu à ta principale question. Sponsoriser un projet open-source ? désolé, je ne comprends pas le concept :P

Modifié par dièse
Lien vers le commentaire
Partager sur d’autres sites

J'en pense que tu as l'air très motivé  ;)

C'est vrai. C'est parce que je viens de démarrer une nouvelle activité (en tant que société) et donc j'essaie d'explorer les différentes pistes. :)

Vu que c'est un peu la mode du framework et qu'ils en existent déjà des dizaines (voir centaines ?  :unsure: ), je pense qu'il va falloir que tu trouves une réelle spécificité pour réussir à regrouper des personnes sur ce projet.

Oui, il existe des tas de frameworks, mais un paquet ne répondent pas à mes exigences (notamment : respect des standards, PHP5, séparation du code et de la présentation).

Dans ceux qui restent, je pourrais peut-être trouver mon bonheur, mais je suis dépendant de la communauté derrière le framework : est-elle active ? corrige-t-elle les bugs rapidement ? si je dois personnaliser le framework, est-ce que ça va me prendre du temps pour comprendre comment il fonctionne ?...

Dans tous les cas, les frameworks sont rarement suffisamment génériques ou flexibles, et donc je vais être amené à me plonger dans les profondeurs du code et y passer du temps. Dans ces conditions, autant l'avoir conçu depuis le départ.

Edit : oups  :blush: au final je n'avais pas répondu à ta principale question. Sponsoriser un projet open-source ? désolé, je ne comprends pas le concept :P 

Sponsoriser un projet open-source = le code produit reste open-source mais le travail des développeurs qui bossent sur le projet est rémunéré. Cette rémunération prend souvent la forme de primes (le développeur touche autant pour tel module développé), mais ça peut aussi passer par l'embauche d'un ou plusieurs développeur(s) à temps plein sur le projet (Drupal fonctionne selon ce modèle).

Concrétement, ça permet à des gens qui ont des attentes précises et un peu d'argent de s'associer pour :

  • définir ensemble le framework dont ils ont besoin (alors que framework open-source = tu prends tel quel)

  • répartir le coût du framework entre eux

  • obtenir un modèle beaucoup plus réactif (les développeurs sont payés pour accomplir une tâche précise dans un délai précis)

  • de bénéficier de certains avantages de l'open-source, notamment plus de testeurs et de feedback qu'avec un projet développé en interne

Personnellement je préfère utiliser mon propre framework et faire appelle à des composants PEAR si besoin...

C'est ce que j'ai fait moi aussi jusqu'à présent. Mais je suis persuadé que la qualité du code et la puissance de travail d'un seul développeur ne pourra jamais battre la qualité et la puissance d'une communauté de développeurs (à fortiori s'ils sont rémunérés, et donc plus motivés).

Modifié par vincedo
Lien vers le commentaire
Partager sur d’autres sites

A chaque fois que j'ai du me pencher sur un Framework, ce n'est jamais assez flexible ou alors il y a toujours qq chose qui m'est impose sans vraiment de raison.

Dans ton exemple :

La technique
  • PHP/MySQL.

  • Uniquement du PHP 5 orienté objet.

  • Respect des bonnes pratiques de codage.

<{POST_SNAPBACK}>

Pourquoi MySQL ??? Ben non, j'utilise PostgreSQL et je ne vois pas pourquoi un framework m'imposerait une base de donnee quelconque :huh: . Ce n'est pas son taf au framework de m'imposer sa methode de stoquage.

Bref, c'est pourquoi je prefere utiliser mon propre code ...

Lolo

PS: dans mes codes, les acces aux bases de donnees se font par une classe abstraite ce qui me permet de rester independant par rapport a la BD. Beaucoup de mes sites utilise PostgreSQL comme je le dis plus haut, mais lorsque l'on me demande de passer sous Oracle, je n'ai qu'a changer l'include qui defini la classe d'implementation et le tour est joue.

(bien sur, ca dependant aussi du code SQL a lancer, mais dans la magorite du temps, il s'agit de code SQL tout ce qu'il y a de plus basic donc reconnu par toutes les BD).

Lien vers le commentaire
Partager sur d’autres sites

Je suis comme dièse, je préfere travailler avec mon framework. Même chose que destroyedlolo, je programme avec une interface pas une implémentation.

Je pense que le projet comme tu le présente n'offre pas de réelle scpécifité par rapport aux nombreux framework existant :)

Lien vers le commentaire
Partager sur d’autres sites

La couche d'abstraction pour la BDD, tout à fait d'accord. J'ai écrit MySQL un peu par réflexe.

Notez que les spécifications ne sont pas du tout arrêtées, ce sont des pistes.

Le fait que vous réagissiez par rapport à ça me fait penser que je me suis peut-être mal exprimé. L'idée centrale de mon message, c'est "des gens avec des besoins communs associent leurs ressources (financières ou en développeurs) pour construire un framework qui répondra à LEURS attentes".

Ce qui veut dire que :

  • le framework ne sera et ne fera que ce que les associés (ou sponsors) voudront qu'il fasse. Si tu es associé (ça fait très business, mais bon), tu décides des fonctionnalités avec les autres (impossible avec les nombreux frameworks existants).
  • le but du framework n'est pas de "présenter une spécificité", simplement de faire EXACTEMENT ce qu'on attend de lui (c'est déjà énorme)
  • ça présente les autres avantages cités ds mon précédent post (meilleur code, coût moins élevé...)

Les inconvénients ? Le risque que chaque associé veuille tirer la couverture à soi pour que le framework réalise ce dont LUI a besoin. D'où l'idée de limiter le framework à une couche basse, générique, ré-utilisable pour tous sites, et dont tout le monde aurait besoin.

Après, rien n'empêche de sponsoriser une fonctionnalité particulière si on en a besoin. Ca se fait déjà : certains postent des messages dans les forums du style "xxxx EUR pour un plug-in qui fait ci ou ça sous WordPress".

Lien vers le commentaire
Partager sur d’autres sites

Je ne comprend quand même pas ce que ce projet apporte de différents par rapport à un autre Framework open source du quel on peut devenir facilement développeur et qui est facilement adaptable à ces besoins.

Personelement j'ai développé mon framework par envie et par orgueil personnel mais si j'avais du en choisir un, j'aurais par exemple opté pour Symfony que je trouve très bien structuré et fort adaptable. Mais bon, c'est mon avis personnel.

Lien vers le commentaire
Partager sur d’autres sites

Personelement j'ai développé mon framework par envie et par orgueil personnel mais si j'avais du en choisir un, j'aurais par exemple opté pour Symfony que je trouve très bien structuré et fort adaptable. Mais bon, c'est mon avis personnel.

<{POST_SNAPBACK}>

Je suis épaté de voir que même après avoir passé un peu de temps à étudier la question, je continue à découvrir régulièrement de nouveaux frameworks que je ne connais pas. Ca aide pas franchement à se décider tout ça. :)

Pour info, une liste de frameworks PHP est disponible ici:

http://dmoz.org/Computers/Programming/Lang...pts/Frameworks/

Modifié par vincedo
Lien vers le commentaire
Partager sur d’autres sites

Je ne débattrais pas de l'avantage de travailler avec un framework.

Cependant, l'inconvénient est celui-ci :

Pour envoyer un mail en php, il faut une fonction de 4 lettres.

Pour envoyer un mail avec un framework 'intéressant', il faut environs 3 pages de code. Au final, on utilise bien une seule fonction, mais le code s'alourdit de 3 pages.

Si un gros projet peut nécessiter un framework, en revanche pour un petit projet, ca alourdit facilement l'ensemble du code, en y ajoutant quantité de fonctions, dont la plupart sont totalement inutiles.

A mon humble avis, Php est déjà un framework à lui tout seul.

Enfin, il existe effectivement quantité de frameworks, il est dommage de réinventer la roue. L'idéal, serait de partir sur un projet déjà existant, et soit en développer les parties nécessaires, soit reprendre les parties 'obscures', 'non désirées'.

Lien vers le commentaire
Partager sur d’autres sites

Pour envoyer un mail en php, il faut une fonction de 4 lettres.

Pour envoyer un mail avec un framework 'intéressant', il faut environs 3 pages de code. Au final, on utilise bien une seule fonction, mais le code s'alourdit de 3 pages.

Si un gros projet peut nécessiter un framework, en revanche pour un petit projet, ca alourdit facilement l'ensemble du code, en y ajoutant quantité de fonctions, dont la plupart sont totalement inutiles.

<{POST_SNAPBACK}>

Juste. Mais les 4 lettres sont bcp moins puissantes qu'une classe comme PHPMailer. Suffit de jeter un oeil à ça puis ça. Mais comme tu le soulignes, ne débattons pas de l'utilité d'un framework (je pense que tout le monde en est convaincu).

La vraie question, c'est : utiliser un framework existant ou développer le sien ?

Et nous vlà reparti pour un tour ! ;)

LE MOT DE LA FIN*

Pour éviter de tourner en rond, je vais poster mes conclusions perso. Non qu'elles aient valeur universelle (pas du tout, on n'a cessé de souligner la spécificité des besoins de chaque développeur, et des fonctionnalités de chaque framework). Simplement, vos messages m'ont permis d'y voir plus clair, et je voulais vous en faire part :

  • D'abord, merci à tous.
    Je suis nouveau sur le hub et je trouve ça bien agréable de pouvoir échanger avec des "travailleurs du web" expérimentés, en français en plus (je traînais bcp sur les forums anglophones jusqu'à maintenant).


  • Faire un framework de + en projet collaboratif open-source n'est pas une bonne idée.
    Car le noyau de fonctionnalités communes sur lequel ses développeurs s'entendraient n'apporterait rien par rapport aux frameworks existants ; ça serait réinventer la roue.


  • De plus, la gestion d'un tel projet est une activité à temps plein.
    Or, mon but, c'est de faire des sites Web, pas de passer à mon temps à fabriquer une solution pour les faire.


  • Dans mon cas, il serait plus intéressant d'avoir mon framework spécialisé.
    D'après vos messages, il semble que je ne sois pas le seul. Le style de sites que je veux construire repose sur un modèle assez précis. Mieux vaut utiliser un framework implémentant exactement ce modèle plutôt qu'un framework généraliste qui alourdirait l'ensemble et que je devrais "tordre" pour qu'il fasse ce que je veux.


  • Je vais donc fabriquer mon propre framework, mais pas en partant de 0.
    Je suis assez partisan d'écrire son propre code, ne serait-ce que parce que c'est très formateur. Cela dit, il existe déjà de très bons frameworks/classes et ça serait dommage de s'en priver complétement. Sans forcément les ré-utiliser tels quels, on peut s'inspirer de leur logique, structure et bonnes pratiques pour gagner du temps et de la qualité.

Vouloir construire un framework était peut-être un peu naïf.

Mon idée était sûrement motivée aussi par le fait de vouloir passer moins de temps sur le dévt. Ceux d'entre vous qui gèrent des sites le savent, le dévt n'est qu'une partie du boulot (y a aussi le contenu, le marketing, le SEO...). J'adore coder mais je pense honnêtement que si j'avais eu les moyens, j'aurais embauché un développeur PHP calé avec qui j'aurais développé en binôme (histoire de garder les mains ds le code mais d'avoir plus de temps, et puis de partager l'expérience à la manière de l'Extreme Programming). Faut que j'vous laisse, jvais appeler mon comptable. ;)

(*) Quand je dis mot de la fin, mon intention n'est ni de mettre un terme à cette discussion ni de prétendre détenir la vérité, c'est juste une conclusion à ce stade de la conversation.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...