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

Bibliothèques et frameworks PHP Discussion :

Choix d'un framework


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Par défaut Choix d'un framework
    Bonjour à tous, je suis récemment inscrit et ceci est mon premier post.

    Et comme je n'ai pas trouvé de topic de présentation, je vais rapidement me présenter afin que vous compreniez au mieux mes besoin, mes motivations et mes attentes =).

    Je suis depuis peu, étudiant en développement web, et depuis 6 mois stagiaire dans une entreprise de développement Web sur une application en JS utilisant blackbone.js.
    Comprenez donc que je ne suis pas encore très compétant et ne connaisse encore que très peu de choses.

    Dans le but de justement m'améliorer et gagner en compétence, il y a un certain nombre de projets que j'aimerais réaliser, c'est pourquoi je cherche un bon framework.

    Mon entreprise utilise un framework maison, dans lequel, les models sont les classes qui gèrent toutes les fonctions relatives a des objets qui sont pour la plupart enregistrés en base.
    Les models étendent une classe qui gère certaines fonctions bateaux telles que getById() et toutes les fonctions en rapport avec les requetes SQL.
    Les controllers sont les pages dans lesquelles on vient exécuter des fonctions de models ou d'autres à la suite, chaque controllers ont une vue.

    Ce qui me plait réellement, c'est le fait que les models n'ont aucun liens avec les controllers et les vues contrairement a un certain nombres d'autres frameworks tels que CodeIgnier.

    Donc voilà, pour ce qui est du but de mon poste, c'est que je chercherais un framework ou plutôt un micro framework simple et performant qui se rapprocherait de cette façon de fonctionner sans tout gérer à ma place non plus.
    J'aimerais éviter les frameworks qui intègrent déjà pleins de modules telles que les profiles d'utilisateurs etc.. Afin de tout de même développer moi même ces fonctionnalités.

    Franchement, si je pouvais je copierais le framework du boulot, mais je pense que c'est illégale donc je ne le fais pas =).
    Le framework idéale, fonctionnerais de la même façon qu'expliqué ci-dessus et aurait de pré-intégré certaines choses telles que la gestion des urls et une bonne sécurité par rapport à la base de donnée.

    Je me suis renseigner sur certains frameworks tels que phalcon qui est tres performant, mais je n'arrive pas à l'installer sur un serveur xampp, je monterais peut-être une vm pour le mettre sur du linux.

    Merci d'avoir pris le temps de me lire, et n'hésitez pas à poser des questions si vous voulez préciser mes besoin.

  2. #2
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Citation Envoyé par Dasten Voir le message
    Et comme je n'ai pas trouvé de topic de présentation, je vais rapidement me présenter afin que vous compreniez au mieux mes besoin, mes motivations et mes attentes =).
    Pour information : Index du forum / Le club des professionnels en informatique / Mode d'emploi & aide aux nouveaux / Présentations.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Par défaut
    Merci pour l'information, dois-je me présenter au bon endroit avant d'être conseillé ?

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par Dasten Voir le message
    Merci pour l'information, dois-je me présenter au bon endroit avant d'être conseillé ?
    Non, ce n'est pas indispensable. Il faudra juste être patient et attendre qu'un membre du forum PHP consulte le forum, et se considère suffisemment compétant et intéressé pour répondre à ta question.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Citation Envoyé par Dasten Voir le message
    Ce qui me plait réellement, c'est le fait que les models n'ont aucun liens avec les controllers et les vues contrairement a un certain nombres d'autres frameworks tels que CodeIgnier.
    Ça tombe bien, tous les bons framework font ça. C'est la base même :-)
    Citation Envoyé par Dasten Voir le message
    Donc voilà, pour ce qui est du but de mon poste, c'est que je chercherais un framework ou plutôt un micro framework simple et performant qui se rapprocherait de cette façon de fonctionner sans tout gérer à ma place non plus.
    J'aimerais éviter les frameworks qui intègrent déjà pleins de modules telles que les profiles d'utilisateurs etc.. Afin de tout de même développer moi même ces fonctionnalités.
    Qu'est-ce que tu entends par micro-framework? Par simplicité? Par performance?

    Dans le PHP moderne, tu as 2 manières d'organiser ton code:
    - En utilisant des framework: Zend (vénérable, efficace, pas sexy mais sans gros défauts); Symfony (très efficace, une courbe d'apprentissage un peu difficile, "enterprise-grade", Java-esque), Laravel (sexy, facile à apprendre, tends à développer une mentalité de secte chez ses "partisans", à la Ruby On rails) - Silex (la version micro de Symfony: très simple, exige beaucoup de travail de ta part, parfait pour certaines situations tels que sigle-page app, APIs etc...), Slim (un autre microframework).

    Ces frameworks ne sont pas de grosses choses monolithiques (ce qui était le cas dans le PHP pas moderne): tu peux isoler, ajouter ou remplacer des composants (plus ou moins facilement, suivant tes compétences). Tu peux aussi facilement les étendre, soit en développant les bibliothèquestoi-même, soit utilisant des bibliothèquesdéveloppées ailleurs (ex: FOS, Sonata pour Symfony). Du coup, tu ne peux pas dire par exemple que tu préfères la manière dont Symfony gère ses modèles par rapport à la façon dont Laravel gère les siens, car tu peux remplacer Doctrine (la bibliothèque la plus utilisée sur Symfony) par Eloquent (la bibliothèques utilisée la plus souvent sous Laravel), tu peux choisir toi-même le moteur de template que tu vas utiliser (Twig, Blade, Plates ou PHP lui-même). Bref, tu as une certaine liberté (dans le cadre du Framework).

    - En utilisant des bibliothèques/packages: au lieux de choisir un framework, tu fais ton marché et prends les meilleurs packages d'où qu'ils viennent. Parfois, ce sont des packages d'un Framework (les fameux composants qu'on peut isoler), parfois ce sont des bibliothèquesindépendantes, parfois ils font partie d'un ensemble de composants indépendants parmi lesquelles tu peux choisir ceux que tu veux (Aura, The League of Extraordinary Packages). Dans ce cas, c'est toi qui est maître de ton architecture, pour le meilleur ou pour le pire.

    Bref, contrairement à Ruby ou il y a la Vérité UniqueTM avec Rails, ou Javascript avec Node, en PHP tu as le choix, et il n'y a pas de meilleur choix. Il y a le choix qui est le plus adapté à tes besoins, à ce que tu veux faire, à tes compétences, à tes deadlines, etc... Donc, la seule solution, c'est de lire la documentation de chaque framework pour découvrir leurs philosophies, et de les tester toi-même - laisse tomber XAMPP, utilise Vagrant et PuPHPet.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Par défaut
    Merci beaucoup Tsilefy pour ta réponse. J'essairais Vagrant et PuPHPet ce week end lorsque j'aurais un peu plus de temps je pense, intégrent-il une base de donnée ?

    Sinon pour en revenir au sujet
    Citation Envoyé par Tsilefy Voir le message
    Qu'est-ce que tu entends par micro-framework? Par simplicité? Par performance ?
    Et bien, j'ai lu qu'un micro framework était un framework qui n'incluaient pas franchement de vendors ect, et j'imagine que par conséquent oui on gagne ne performance.

    Ce qu'il me faudrait c'est un framework simplissime avec lequel j'aurais beaucoup de choses a faire moi même mais qu'au moins je comprenne ce que j'ai fais, et qu'il soit performant afin de bien tourner sur de toutes petites machines et biensur sécurisé en cas de mise en production puisque je n'ai pas encore beaucoup de compétences dans ce domaine ci non plus.
    J'en aurais besoin pour de petits projets perso tels qu'un site web/CV classique, un site pour un centre équestre (pour une connaissance) qui inclurait quelques fonctionnalités php/ajax etc.. et pourquoi pas pour un futur projet e-commerce.

    Le problème c'est qu'il y en a tellement et parfois la doc ne me parle pas beaucoup...

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Vagrant est un outil qui permet de gérer des VMs comme Virtualbox, Hyper-V ou VMWare. Puphpet est un site qui te permet de configurer une VM gérée par Vagrant afin d'en faire un environnement de développement PHP complet, avec tout ce que tu veux (Apache ou Nginx, PHP, HHVM, MySQL, MOngoDB, Redis ) à l'aide de Puppet (d'où le jeu de mots Puppet/PuPHPet). Bref, ça te permet de disposer d'un VM parfaitement configuré et fonctionnel sans avoir à jouer l'administrateur système et à chercher et installer les paquets un par un.

    L'avantage, c'est 1) tu peux configurer ton VM pour qu'il ait la même configuration que ton serveur, donc pas de risque de bugs imprévisibles parce que le site a été développé dans un système différent du système de production; et 2) si tu travailles à plusieurs, ou si tu bosses les mêmes projets sur plusieurs machines en même temps, il suffit de partager un fichier de configuration pour dupliquer le même environnement.

    Il existe un nouvel outil qui semble plus performant, Docker, mais vu que je ne l'ai pas encore utilisé, je ne peux pas t'en dire plus.

    était un framework qui n'incluaient pas franchement de vendors
    vendors est juste une convention pour séparer les bibliothèques du code (squelette) du framework. Le fait de ne pas avoir de vendors ne veut pas dire que c'est plus léger, c'est peut-être parce que les bibliothèques sont mélangées à la squellette (ce qui est mauvais), ou qu'elles sont juste rangées dans un autre répertoire (src par exemple).

    Le nombre de classes ou de lignes d'un framework n'a pas d'importance: depuis PHP 5.5 (tu programmes avec PHP 5.5 au moins, et de préférence PHP 5.6 rassure-moi?), opcache garde les bytecodes des fichiers PHP en mémoire, ce qui veut dire que les classes ne sont plus lues sur le disque.

    Je ne connais pas de framework qui soit à la fois léger et sécurisé. À chaque fois qu'un framework prends une décision pour toi (ex: échapper un texte avant de l'afficher, utiliser des requêtes préparées, ajouter des jetons CSRF, sécuriser les sessions ou les cookies, etc...), ça prend plus de temps et de ressources, tout simplement parce qu'un framework doit penser à toutes les éventualités, même si beaucoup d'entre elles ne s'appliquent pas dans ton cas. Même chose pour la gestion des bases de données, l'envoi de mails, la création d'un formulaire etc... Aucun micro-framework ne t'aide en termes de sécurité, tu devra tout faire toi-même

    PHP est un langage incroyablement flexible, utilise-le au mieux de ses forces. Pour un simple site web perso, tu n'as pas besoin d'un framework (à moins que ça ne soit pour apprendre, c'est une autre histoire). Pour un site e-commerce, oui tu peux utiliser un framework. Un framework ne devient intéressant que lorsqu'un site devient important, autrement c'est comme utiliser un marteau-piqueur pour enfoncer des clous.

    Encore une fois, je ne peux te conseiller que de tester Zend, Symfony et Laravel (pour les gros) et Slim, Lumen et Silex (pour les "micros").

    Le problème c'est qu'il y en a tellement et parfois la doc ne me parle pas beaucoup
    Est-ce que tu comprends l'anglais? Si ce n'est pas le cas, il va falloir s'y mettre!

  8. #8
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 506
    Par défaut
    Si je peux me permettre, j'ajouterais CakePHP 3.0 qui au vu des ses version précédente est un projet pérenne et qui de plus son ORM repose sur le DataMaper.
    Je plussoie également Jelix qui est vraiment un outil puissant.
    Les deux sont moin compliqué à prendre en main que Zend ou SF.

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2015
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2015
    Messages : 4
    Par défaut
    Bonjour, désolé de ne pas avoir été plus présent ces derniers jours j'ai eu beaucoup de choses à faire.

    Citation Envoyé par Tsilefy Voir le message
    L'avantage, c'est 1) tu peux configurer ton VM pour qu'il ait la même configuration que ton serveur, donc pas de risque de bugs imprévisibles parce que le site a été développé dans un système différent du système de production; et 2) si tu travailles à plusieurs, ou si tu bosses les mêmes projets sur plusieurs machines en même temps, il suffit de partager un fichier de configuration pour dupliquer le même environnement.
    Je suis d'accords avec toi, cependant, dans un futur proche j'aimerais aussi faire une application local. Et j'ai pas très envies d'avoir à démarrer la VM dès que je veux pouvoir me servir de cette application.
    Sinon merci pour toutes ces informations, elle me seront très utiles dans mon choix.

    Citation Envoyé par MaitrePylos Voir le message
    Si je peux me permettre, j'ajouterais CakePHP 3.0 qui au vu des ses version précédente est un projet pérenne et qui de plus son ORM repose sur le DataMaper.
    Je plussoie également Jelix qui est vraiment un outil puissant.
    Les deux sont moin compliqué à prendre en main que Zend ou SF.
    Biensur que tu peux te permettre, c'est justement le but d'avoir des conseils, et plus j'en aurais, plus mes choix pourront s'affiner =), et merci pour ces conseils.

    Je ne connais quasiment que CodeIgniter comme vrai framework publique, et au final, d'après vos réponses, c'est le seul (dans les plus utilisés) à fonctionné comme il fonctionne avec un model par pages ?

  10. #10
    Membre Expert

    Profil pro
    Inscrit en
    Mai 2008
    Messages
    1 576
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 1 576
    Par défaut
    Je ne comprends pas ce que tu entends par model par page.

    Quant à CI, le problème c'est qu'il est resté en retard par rapport aux autres frameworks, et que la boîte qui le développait avant, Ellis Lab, l'a cédé à une université de Vancouver, qui la confie à ses étudiants comme une sorte de TP grandeur nature. Je ne suis pas sûr de faire confiance à un framework développé dans ce cadre...

Discussions similaires

  1. Choix d'un framework
    Par yan.c dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 06/11/2009, 09h14
  2. Besoin d'aide pour le choix d'un framework
    Par pontus21 dans le forum Frameworks Web
    Réponses: 10
    Dernier message: 15/04/2009, 14h23
  3. Choix d'un framework
    Par damien77 dans le forum Frameworks Web
    Réponses: 5
    Dernier message: 08/12/2008, 21h51
  4. [AJAX] Choix d'un Framework et limite du Ajax
    Par black is beautiful dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/10/2008, 14h27
  5. Choix d'un framework
    Par Invité dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 27/08/2008, 20h50

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