Movicon 1.0 est sorti

Posté par . Édité par tuiu pol et Nÿco. Modéré par tuiu pol. Licence CC by-sa
Tags :
17
9
déc.
2011
PHP

Après plus de six mois de développement et une version bêta, Movicon 1.0 est sorti. Ce logiciel, que j'avais déjà mentionné ici, est un framework PHP sous licence LGPLv3 suivant le patron d'architecture Modèle-Vue-Contrôleur qui se concentre sur la modularité et la légèreté. Une des originalités de ce framework est son approche fonctionnelle qui dénote fortement parmi ses concurrents qui sont tous orientés objet.

Voici une liste des changements de cette version par rapport à la précédente (0.4.4) :

  • Les fonctions commençant par movicon_ sont renommées en mvc_ afin de préserver les doigts des gentils développeurs
  • Le routage d'URL personnalisé a été introduit. Auparavant, le routage se faisait uniquement suivant un modèle application/contrôleur/fonction. Le nouveau routage peut être activé optionnellement et se fait à l'aide d'expressions régulières
  • Le format des fichiers de configuration (ini) a été étendu avec un support des listes et des inclusions
  • Le code spécifique au web a été séparé du cœur, permettant l'utilisation potentielle de Movicon pour des tâches non liées au web
  • Le support des cookies a été ajouté. Auparavant Movicon ne supportait que les variables de session
  • L'utilitaire en ligne de commande peut maintenant générer le code de base des modèles
  • Le module de templates utilise maintenant une syntaxe proche du système de templates Mustache
  • Quand il est utilisé, le module de templates remplace maintenant les vues système, ainsi les fichiers de vue sont considérés comme des templates. Ce comportement peut être désactivé
  • Les requêtes de création de tables ont été ajoutées au module d'abstraction des bases de données
  • Ajout d'un composant installeur, qui permet de créer graphiquement la configuration d'une application non configurée

Movicon fut commencé comme un bricolage et une expérimentation après avoir constaté la complexité et la rigidité trop importantes dans les frameworks PHP populaires. Le but était de faire un environnement simple, et qui soit juste un peu plus qu'une collection de bibliothèques. Au fil du temps, le programme fut amené à être remanié puis un système de modules extérieurs fut ajouté et nombre d'autres fonctionnalités ont suivi. Au final, Movicon est devenu capable d'être utilisé pour des sites non triviaux.

Le framework a pour but d'abstraire autant que possible toutes les tâches répétitives et fastidieuses ainsi que d'assurer la sécurité des données de façon transparente. Les fonctionnalités que propose Movicon sont les suivantes :

  • Sécurisation systématique des données issues de l'utilisateur
  • Génération de code pour les opérations de base avec les bases de données (CRUD)
  • Gestion de l'internationalisation
  • Framework de tests unitaires intégré
  • Isolation des données en session et cookie (pour avoir plusieurs instances de la même application)
  • Écriture et extension de modules (composants) très simple
  • Abstraction des bases de données MySQL, SQLite 2 et 3, et Oracle
  • Gestion d'applications simple et fonctionnement en mode application unique ou multiples
  • Arborescence des applications séparée et configurable
  • L'emplacement du framework est facilement modifiable (application dans le framework ou framework dans l'application, ou bien complètement séparé)
  • Ré-écriture des URL possible
  • Support complet pour IIS 6 ou 7
  • Hooks pour faciliter l'écriture de composants
  • Système de trace

Le cœur du framework est aussi petit que possible. Ainsi certaines fonctionnalités habituellement dans le cœur d'un framework sont des composants séparés, comme le module d'abstraction des bases de données. À l'heure actuelle, assez peu de modules sont disponibles, et ils sont tous inclus dans le framework. Écrire un module est très simple et vous êtes encouragés à faire le vôtre (en particulier pour les bases de données).

En supplément du tutoriel de base (voir les liens), voici le dépot bazaar d'un moteur de blog utilisant Movicon : http://bzr.ath.cx/~etenil/u/ Pour toute question rejoignez-nous sur le salon jabber movicon@etenil.thruhere.net

  • # Approche fonctionnelle ?

    Posté par (page perso) . Évalué à 1.

    Je n'ai pas pris le temps de regarder le code source en détail, mais qu'entends-tu par approche fonctionnelle ?

    La dernière fois que je me suis intéressé au sujet, faire de la programmation fonctionnelle en PHP relevait plus de la gageure qu'autre chose et je n'ai pas lu d'article traitant du sujet récemment. De quelle manière tu y es tu prises ?

    • [^] # Re: Approche fonctionnelle ?

      Posté par . Évalué à 1.

      C'est vrai que PHP est ennuyeux pour la programmation fonctionnelle, notemment du fait que les fonctions ne sont pas vues comme des objets et que faire des callbacks peut être particulièrement problematique. Mais enfin on peut y arriver.

      Quant à mon approche, je ne sais pas vraiment comment te la décrire, le mieux serait certainement de lire le code lui-même.

    • [^] # Re: Approche fonctionnelle ?

      Posté par (page perso) . Évalué à 1. Dernière modification le 11/12/11 à 14:31.

      Aux dernières nouvelles, les closures font partie de PHP 5.3 ; on peut donc faire de la programmation fonctionnelle assez facilement.

      <?php
      function add($x) {
               return	function($y) use($x) { return $x + $y; };
      }
      
      $add_two = add(2);
      
      var_dump($add_two(1)); // int(3)
      
      

      (Bon, c'est sûr, il manque pas mal de trucs sympa qu'on associe généralement aux langages fonctionnels, par exemple le pattern matching)

  • # Mais encore ?

    Posté par . Évalué à 2.

    Ça semble intéressant mais je connais déjà tellement de bons frameworks PHP que je reste sur ma faim.

    Allez, fais nous rêver mieux que ça ! :-)
    Qu'est-ce qui te différencie, et qui me fera choisir ton framework par rapport, par exemple, à un CakePHP ? (qui est bien plus souple qu'un Symfony mal ou moyennement bien maîtrisé, au passage)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.