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 :

[Mouf] Sortie de Mouf, un framework IOC avec interface graphique


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    Points : 4
    Points
    4
    Par défaut [Mouf] Sortie de Mouf, un framework IOC avec interface graphique
    Salut les développeurs!

    Je suis très content d'annoncer la pre-release de Mouf, un framework PHP open-source:
    http://mouf-php.com/

    En quoi Mouf est différent des autres frameworks? Et bien tout d'abord, il ne s'agit pas d'un framework MVC, mais d'ou outil qui permet de lier des créer et lier objets entre eux via une interface graphique web. Pour les connaisseurs, c'est un framework d'injection de dépendance (comme Spring dans le monde Java), mais avec une interface graphique.

    Mouf n'est pas exactement un "petit" framework. Il a été développé chez TheCodingMachine et nous travaillons dessus depuis 3 ans. Il dispose déjà d'une bibliothèque de plus de 100 composants (un composant MVC, un ORM, des loggers, des composants de gestion du cache, une intégration avec Drupal, etc...) Il est déjà utilisé en production dans plusieurs applications. Mais jusque là, nous n'avions vraiment jamais communiqué dessus. Il me semble qu'aujourd'hui, la base de code est suffisamment stable pour pouvoir demander un retour dessus.

    Et c'est là que je me tourne vers vous, les développeurs de developpez.com! Nous manquons cruellement de retours sur notre travail. Qu'en pensez-vous? Etes vous séduit par l'idée? Avez-vous des remarques, des critiques? Encore mieux, seriez-vous intéressés par participer?

    Voilà, nous souhaitons vraiment ouvrir le développement du framework et en faire un véritable projet open-source, avec une grande communauté. Il reste plein de choses à faire, mais nous sommes persuadés que le fait d'offrir une interface graphique aux développeurs est suffisamment novateur pour en faire un framework à part dans le monde PHP.

    Je suis preneur de tous les commentaires!

    David
    Lead developer
    http://mouf-php.com

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    Bon je vais faire comme d'hab quand y'a des nouveau projet :

    Je vais sur la page de téléchargement, le lien est rompu, je prend la nigthly
    Je met tout ça dans mon dossier, je lance, pas d'erreur cool (bon point)
    Je met un mot de passe pour l'admin et la : An Error has been detected

    avec un beau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Strict Standards: Declaration of MoufReflectionClass::getMethods() should be compatible with ReflectionClass::getMethods($filter = NULL) in D:\www\mouf\mouf\reflection\MoufReflectionClass.php on line 20
     
    Strict Standards: Declaration of MoufReflectionClass::getProperties() should be compatible with ReflectionClass::getProperties($filter = NULL) in D:\www\mouf\mouf\reflection\MoufReflectionClass.php on line 20
     
    Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at D:\www\mouf\mouf\reflection\MoufReflectionClass.php:20) in D:\www\mouf\mouf\load.php on line 11
     
    Warning: Cannot modify header information - headers already sent by (output started at D:\www\mouf\mouf\reflection\MoufReflectionClass.php:20) in D:\www\mouf\plugins\mvc\splash-common\3.2\controllers\Controller.php on line 72
     
    Warning: Cannot modify header information - headers already sent by (output started at D:\www\mouf\mouf\reflection\MoufReflectionClass.php:20) in D:\www\mouf\plugins\html\template\MoufTemplate\1.0\MoufTemplate.php on line 43
    EDIT 1 : bon j'ai corrigé, pas d'autre erreur, je regrette que les pages soient pas valides W3C
    EDIT 2 : ne pas de error_reporting, pour monter ou baissé le niveau d'erreur
    EDIT 3 : pas de javascript, pas de mouf
    EDIT 4 : ne pas utiliser d'alias,
    • die -> exit (des fois y'a des die, des fois des exit, c'est que exit)
    • join -> implode
    • is_integer -> is_int
    • is_a (ne marche pas en 5.2) donc instanceof
    • split -> explode
    • sizeof -> count

    EDIT 5 : gaffe au for, pour un array un foreach suffit, et c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for ($i=1,$p=count($parameters); $i<$p; $i++)
    // pas
    for ($i=1; $i<count($parameters); $i++)
    EDIT 6 : pas besoin de faire de fwrite a répétition (MultiStepActionService.php:L218), un file_puts_contents suffit
    EDIT 7 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $html = ob_get_contents();
    ob_end_clean();
    //juste
     ob_get_clean();

    ps : petite question : quelle est la version minimal de PHP autorisé ?

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Salut Stealth,

    Merci beaucoup pour ce retour, c'est déjà très instructif, tu m'apprends:
    - que nous devrions systématiquement tester avec le mode STRICT
    - que nous avons oublié de mettre la version minimale de PHP.

    Pour répondre à ta question, la version minimale de PHP est la 5.2.
    Certains modules demandent cependant la version 5.3 pour fonctionner. Il y en a peu pour l'instant, mais il devrait y en avoir de plus en plus (après tout, PHP 5.4 est sorti et PHP 5.3 devient déjà une release ancienne!)

    Je me colle à la correction de ces erreurs E_STRICT tout de suite!

    EDIT 1: lien corrigé sur le site, erreurs E_STRICT corrigées
    EDIT 2: is_a remplacé par instanceof (pour éviter le deprecated post 5.3)

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 224
    Points
    20 224
    Par défaut
    Salut,

    Je te donne ici un premier avis pas du tout objectif , mais c'est le ressenti que j'ai à la lecture de ta présentation et au parcours du site du framework.

    1-
    comme Spring dans le monde Java
    If you have been doing some Java, you can see Mouf as a merge between Spring and Maven
    Le problème c'est que moi je fait du PHP (bon du java aussi dans la pratique mais c'est pas le problème). Et quand je tombe sur un framework PHP dont un des arguments est de se rapprocher d'outils JAVA , ba ça me plait pas.
    Par contre dans un contexte ou tu as des développeurs JAVA qui viennent faire une mission sur du PHP ça doit effectivement être intéressant.

    2-
    Les annotations. J'ai envie de dire même motif , même punition. C'est effectivement pratique en JAVA , mais c'est une fonctionnalité qui n'existe pas en PHP et la première réflexions que j'ai eu c'est que ça doit pas être très performant de parser des fichiers à la recherche d'annotations.

    3-
    L'interface graphique. Alors là je suis partagé. D'un coté ça me gonfle royalement quand je dois taper des lignes de commandes. D'un autre si je veux faire du clic clic souris , je vais faire du windev .
    Après j'ai une vision un peu particulière de ce que devrait être un framework PHP, mais ce qui est certains c'est qu'une interface graphique n'en fait pas partie.

    Je t'avoue ne pas avoir eu le courage d'installer et tester ton framework , donc mes critiques n'ont finalement que peu de valeur. Mais c'est un peu comme ça que je fonctionne avec les FW. Si l'idée me plait et que ça semble pas trop complexe , j'essai.
    Là pour le coup je suis pas emballé.

    Bon courage cependant pour le développement de ce projet
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Salut grunk,

    Merci beaucoup pour ces remarques. Même si tu n'as pas testé le framework, avoir un retour du ressenti de la manière dont on présente Mouf et du site web est très intéressant.

    Très rapidement, pour répondre à tes 3 points:

    1- oui, c'est vrai que l'argument "comme en Java" est une arme à double tranchant. Dans le monde de l'entreprise (et notamment des banques), c'est perçu comme un gage de qualité. Maintenant, pour un développeur PHP, c'est clair que ça peut être inquiétant. En tout cas, l'idée n'est surtout pas de réinventer toutes les servlets, JSP, et autres EJB... j'ai pas l'intention de pourrir le PHP avec toute cette lourdeur. Donc je vais réfléchir à cette comparaison...

    2- Je suis plutôt de l'avis que les annotations peuvent avoir une vraie plus value et qu'elle devraient être implémentées dans une prochaine version de PHP (même si je sais qu'elles ont été refusées pour PHP 5.4). Pour ce qui est des performances, je ne m'amuse pas à parser la PHP-doc au runtime! Juste dans l'interface graphique d'admin, qui génère un fichier PHP tout ce qui a de plus rapide à exécuter.

    3- Concernant l'interface graphique, je comprends ton point. Il est vrai qu'on a vraiment pas l'habitude d'avoir une IHM fournie avec un framework. C'est justement sur ce point que nous voulons changer la donne, et ce sera à nous de démontrer que l'approche a un intérêt.

    En tout cas, je te remercie encore une fois pour ce retour, il est vraiment instructif pour nous.

    David.

  6. #6
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juin 2006
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Salut Stealth,

    Suite à ton mail, j'ai refait une passe sur le code de Mouf. Je pense qu'il est ok maintenant.
    Pour répondre aux remarques que tu as effectué:

    pas de error_reporting, pour monter ou baissé le niveau d'erreur
    Je ne fais pas ce genre de chose lors du fonctionnement de l'application. Après tout, c'est effectivement à l'utilisateur de décider via son fichier php.ini.
    Par contre, j'effectue effectivement cet appel dans un validateur. Les validateurs sont des tests effectués par l'interface d'administration pour vérifier que l'application n'a pas de grosse erreur. Dans le cadre des validateurs, j'active la détection des erreurs pour montrer à l'utilisateur qu'il y a une erreur dans son code.

    pas de javascript, pas de mouf
    Oui, effectivement. Enfin, pour être plus précis, pas de javascript, pas d'interface d'administration pour le développeur. Rien ne t'empêche d'utiliser Mouf dans ton application et Mouf ne force pas tes utilisateurs à activer le javascript sur leur navigateur. Le javascript n'est nécessaire que pour les développeurs qui accèdent à l'interface d'admin. Et ça me paraît plutôt raisonnable. En fait, pour tout dire, je pense même à supprimer le support des vieilles versions de IE pour me focaliser sur les navigateurs vraiment récents.

    ne pas utiliser d'alias
    J'ai fait une passe, il ne devrait plus en rester (dans le répertoire /mouf)

    gaffe au for, pour un array un foreach suffit, et c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for ($i=1,$p=count($parameters); $i<$p; $i++)
    // pas
    for ($i=1; $i<count($parameters); $i++)
    D'accord avec toi sur l'aspect performance, mais à condition que le code soit appelé très fréquemment par le framework. J'ai par exemple corrigé une boucle for dans une fonction d'internationalisation appelée à chaque fois qu'une chaîne devait être traduite. Pour les boucles for de l'interface graphique du développeur, je pense que l'intérêt est limité, les fonctions de cette IHM n'étant appelées que par le développeur, donc rarement.

    pas besoin de faire de fwrite a répétition (MultiStepActionService.php:L218), un file_puts_contents suffit
    Même remarque que ci-dessus. C'est effectivement une bonne pratique, mais le MultiStepActionService n'est appelé que 3 ou 4 fois dans la vie d'une application (pour installer des paquets). Il n'y a donc pas d'intérêt à optimiser cette partie (mais je note le conseil pour la prochaine fois!)


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $html = ob_get_contents();
    ob_end_clean();
    //juste
     ob_get_clean();
    Très juste, c'est pris en compte.


    Juste une petite question (je me permets de t'embêter encore). Au delà de l'aspect "audit de code" (qui est par ailleurs complètement nécessaire), est-ce que tu as des remarques concernant l'idée globale du framework? Est-ce qu'il te paraît intéressant? Trop complexe? Que penses-tu de l'approche?

    Et merci encore pour tes remarques!

    David
    Lead developer
    http://mouf-php.com

Discussions similaires

  1. OpenGL avec interface graphique ?
    Par nono212 dans le forum Moteurs 3D
    Réponses: 4
    Dernier message: 07/02/2008, 18h53
  2. Réponses: 5
    Dernier message: 06/05/2007, 14h33
  3. Réponses: 2
    Dernier message: 27/10/2006, 18h54
  4. Débugger avec interface graphique
    Par powerpsy dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 03/05/2006, 22h53
  5. Application multiplateforme avec interface graphique
    Par TNorth dans le forum Choisir un environnement de développement
    Réponses: 2
    Dernier message: 31/01/2004, 18h55

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