Comparer les frameworks avec BlogMVC.com

Ces temps-ci il y a une multitude de Frameworks MVC pour les langages côté serveur. CakePHP, Symfony 2, Laravel, CodeIgniter, Zend, Ruby On Rails... et la liste ne cesse d'augmenter et il n'est pas facile de choisir son Framework.

Le but du projet BlogMVC est de permettre à chacun de découvrir les différents frameworks à travers un exemple simple : Un Blog.

Je tiens à remercier tous les gens qui ont contribué au projet et on a maintenant un nombre intéréssant de Framework :

  • PHP Frameworks
    • CakePHP
    • Laravel 4
    • Symfony 2
    • ZendFramework 2
    • MKFramework
  • Ruby Frameworks
    • Ruby on Rails 4
  • Python Frameworks
    • Django

Le code est disponible sur Github, vous pourrez vous faire votre propre idée et voir la méthode de développement qui vous convient le mieux.

Présentation du projet


35 Commentaires

591e3e5e946bfe18847080001569a288?s=200&r=pg&d=mm
imikado, 22-08-2014 17:57:27 - Répondre

Une autre chose toute bete: ne pas avoir utilisé le dump du projet: les noms des tables ne sont pas les memes :(

Post à la place de posts, Category à la place de categories... :(

591e3e5e946bfe18847080001569a288?s=200&r=pg&d=mm
imikado, 22-08-2014 17:25:24 - Répondre

Pour symfony2 on a ensuite une erreur:
PHP Warning: require_once(bootstrap.php): failed to open stream: No such file or directory

En effet dans l'exemple fourni lors de l'erreur il indique un code php à mettre dans un fichier cli-config.php
Dans celui-ci il fait un require_once de bootstrap.php (pas trouvé) :(

591e3e5e946bfe18847080001569a288?s=200&r=pg&d=mm
imikado, 22-08-2014 17:18:07 - Répondre

Pour symfony 2: il faudrait mettre à jour le readme:
On nous indique d'executer: doctrine:database:create, doctrine:schema:create.. mais avec quel binaire ?
En fait il faut apparement lancer: php bin/doctrine avec ces commandes
Mais là on a une erreur:

You are missing a "cli-config.php" or "config/cli-config.php" file in your
project, which is required to get the Doctrine Console working.

591e3e5e946bfe18847080001569a288?s=200&r=pg&d=mm
imikado, 22-08-2014 17:07:17 - Répondre

Pour kohana, il faut créer un répertoire "cache" avec les droits d'ecriture dans le répertoire application

591e3e5e946bfe18847080001569a288?s=200&r=pg&d=mm
imikado, 22-08-2014 00:37:25 - Répondre

Pour zendframework2, j'ai pu contourner en modifiant la configuration mysql dans le fichier vendor/doctrine/doctrine-orm-module/config/module.config.php
Mais ce serait mieux d'avoir le fichier manquant ;)

591e3e5e946bfe18847080001569a288?s=200&r=pg&d=mm
imikado, 22-08-2014 00:27:59 - Répondre

Pour zendframework2, il est indiqué dans le fichier readme de modifier le fichier config/autoload/doctrine.local.php
hors ce fichier est absent du projet :(

https://github.com/Grafikart/BlogMVC/tree/master/ZendFramework2/config/autoload

591e3e5e946bfe18847080001569a288?s=200&r=pg&d=mm
imikado, 21-08-2014 18:23:07 - Répondre

note: je précise je suis en PHP 5.5.9

591e3e5e946bfe18847080001569a288?s=200&r=pg&d=mm
imikado, 21-08-2014 18:14:14 - Répondre

Pour laravel, une fois suivi le readme, j'ai cette erreur:(

Symfony \ Component \ Debug \ Exception \ FatalErrorException
Class User contains 3 abstract methods and must therefore be declared abstract or implement the remaining methods (Illuminate\Auth\UserInterface::getRememberToken, Illuminate\Auth\UserInterface::setRememberToken, Illuminate\Auth\UserInterface::getRememberTokenName)

591e3e5e946bfe18847080001569a288?s=200&r=pg&d=mm
imikado, 21-08-2014 17:38:59 - Répondre

J'ai un petit soucis pour cakePhp:
quand vais dans le répertoire et que je fait composer install, j'ai cette erreur:

Loading composer repositories with package information
Initializing PEAR repository http://pear.cakephp.org
Installing dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

Problem 1
- The requested package pear-cakephp/cakephp could not be found in any version, there may be a typo in the package name.

Potential causes:
- A typo in the package name
- The package is not available in a stable-enough version according to your minimum-stability setting
see <https://groups.google.com/d/topic/composer-dev/_g3ASeIFlrc/discussion> for more details.

9665d2ac069abe7db86d29b92367f1a3?s=200&r=pg&d=mm
amys94fr, 28-04-2014 15:03:30 - Répondre

Pourquoi il ne parle pas du Framework Yii ???

A61035066d5edcafdb5e869621d15111?s=200&r=pg&d=mm
Abdellah Rahim, 27-04-2014 17:20:56 - Répondre

Merci

F00254141b8b52082d93d60ce4439a09?s=200&r=pg&d=mm
WebDevPhp, 04-03-2014 10:41:18 - Répondre

je souhaite contribuer aux developpements en Zend Framework 2. ça sera aussi l'occassion pour moi "d'apprendre" github. est ce qu'il y'a une liste de fonctionnalité à réaliser ( ça s'appelle road map je crois) ?

906f04fde2f39b47898284995cfe15ab?s=200&r=pg&d=mm
Czeuw, 03-03-2014 19:26:53 - Répondre

Moi perso j'utilise concrete5 qui est une mine d'or en terme de gestion de langue/fichier/simplicité d'édition.
Le code est super clair et facilement adaptable. Mes clients sont tout aussi contents que moi. Le plus dur est
de trouver des développeurs qui veulent s'y essayer même si il est plutot simple à prendre en main.

406f75b1459a737e41b14a4daa6b918e?s=200&r=pg&d=mm
Calmacil, 23-04-2014 23:45:48 - Répondre

On parle de Frameworks, pas de CMS ;)

591e3e5e946bfe18847080001569a288?s=200&r=pg&d=mm
imikado, 27-02-2014 00:23:40 - Répondre

C'est une très bonne initiative, j'ai modestement relayé votre projet sur le blog de dvp : http://blog.developpez.com/ducodeetdulibre/p12482/outilsweb/comment-choisir-son-framework-php

Cela va permettre de voir le code réel, plus ou moins complexe entre chaque framework

B74a1a5d3c8b52283bf935bcf95d96eb?s=200&r=pg&d=mm
FiX, 25-01-2014 16:02:11 - Répondre

Hello,

Je découvre ce projet, bonne initiative et bonne idée !

Je me suis dis que cela pouvait-être l'occasion pour moi de découvrir CakePHP un peu plus en profondeur.

Je regarde souvent tes vidéos, mais je n'avais jamais mis les mains dans le cambouis. Étant donné qu'il s'agit d'un "petit blog", je me suis dis pourquoi ne pas en profiter pour voir comment fonctionne la bête !

J'ai donc téléchargé le dossier sur GitHub + le dossier CakePHP sur le site officiel, le tout installé en local via MAMP :

- 1er : Erreur dès l'installation

J'ai eu une erreur dès l'installation, qui me disait que la constante "CAKE_CORE_INCLUDE_PATH" était présente dans :

--- app/webroot/index.php
--- index.php (fichier présent à la racine du dossier)

J'ai dû mettre en commentaire la constante présent dans le dossier /webroot pour que cela fonctionne...

Normal ?

- 2nd : Impossible de poster des commentaires

Les commentaires s'enregistrent bien dans la BDD, mais ont à chaque fois la valeur 0 dans le champ "post_id". J'ai regardé dans le code, je pense qu'il y a un problème avec les tokens... mais je n'arrive pas à trouver où !

- 3eme : Mot de passe autre utilisateur

Je voudrai enregistrer un nouvel utilisateur, comme ça pour le délir, mais je n'arrive pas à savoir avec quoi il a été haché (md5, sha1, ...). J'ai regardé partout dans le dossier Controller, le dossier Model, ... je n'arrive pas à trouver avec quoi il a été haché, et surtout comment le programme fait pour comparer les valeurs (celles rentrées par le user via le formulaire, et celles trouvées dans la BDD) permettant de valider la connexion.

Pourrais-tu m'apporter plus d'infos ?

PS : Une vidéo sur le fonctionnement du blog du projet BlogMVC (d'un point de vue technique / codage) serait la bienvenue afin de permettre aux néophytes (comme moi) de mieux comprendre son fonctionnement. Cette vidéo pourrait-être disponible depuis le site BlogMVC.

D'avance merci !

B74a1a5d3c8b52283bf935bcf95d96eb?s=200&r=pg&d=mm
mastertaskone, 24-01-2014 15:46:25 - Répondre

@grafikart : Très bonne idée !

Mais ne penses-tu pas qu'il est (très) difficile de choisir un FrameWork simplement en analysant son code ?

On aura forcément tendance à vouloir comparer notre code (celui qui est généré avec le FrameWork que l'on utilise habituellement) avec le code du nouveau FrameWork (celui que l'on ne connait pas)... et au final on y comprendra pas grand chose et donc on aura toujours tendance à vouloir rester sur notre FrameWork habituel.

Il faudrait peut-être faire un article pour FrameWork mettant en avant les avantages / inconvénients de ce FrameWork par rapport aux autres FrameWork.

Non ?

En tous les cas, l'idée est pas mal !

A+

B74a1a5d3c8b52283bf935bcf95d96eb?s=200&r=pg&d=mm
mastertaskone, 24-01-2014 17:21:42 - Répondre

Il faudrait peut-être faire un article par (au lieu de pour) FrameWork [...]

A63758bd38b449b2e3a9dbf3ec68f607?s=200&r=pg&d=mm
tiamat, 23-01-2014 17:01:58 - Répondre

Bonjour,

Super initiative.

Mais de mon coté j'ai un problème, j'ai essayer plusieurs installation de différente façon et j'ai toujours cel en affichage

fetch('meta'); ?> Html->css('bootstrap'); ?> fetch('css'); ?>
Blog

Html->link('Admin', '/admin'); ?>

fetch('content'); ?>
fetch('script'); ?>

3c6dc032617fc2efa84ba0ea3e53999c?s=200&r=pg&d=mm
Shadow, 13-01-2014 18:19:36 - Répondre

Idée sympa, enfin une "confrontation" de différents Frameworks sur un même sujet pour un même résultat.
L'idée n'est cependant pas nouvelle... Ce genre de comparatif existe déjà pour les frameworks JS : http://todomvc.com/ où le résultat n'est pas un blog mais une todo liste.

1
Grafikart, 14-01-2014 02:06:32 - Répondre

Je parle de TodoMVC dans la vidéo justement :) Il faut rendre à César ce qui appartient à César.

Abbee993574589ffeb25c9b72b65e10c?s=200&r=pg&d=mm
KinderGouello, 11-01-2014 01:10:25 - Répondre

Le projet est super cool ! C'est vraiment pratique de voir comment est créée une même application à travers différents frameworks (et différents langages aussi).

Il pourrait être intéressant aussi de connaître le temps pris pour réaliser le blog avec chaque framework ?

17162
Lartak11, 11-01-2014 08:22:06 - Répondre

Cela te serait inutile de comparer avec le temps qu'il a fallu pour chaque framework du projet, étant donné qu'il a été fait par plusieurs personnes et que chaque personne a une manière différente et un temps différent à y consacrer.
Il est donc fort probable (même surement) que même une estimation serait fausse.

D262e47c4bf123242d01e405d0d34ab7?s=200&r=pg&d=mm
wilose, 10-01-2014 18:50:51 - Répondre

Un projet ambitieux qui peut aller très loin.

Dd8183de1b1bf44cbc334aa0d101fd74?s=200&r=pg&d=mm
Tr4him, 10-01-2014 18:13:33 - Répondre

Une trés bonne idée :) .

623db50049ba46a252e2647d49b0ed0f?s=200&r=pg&d=mm
anwar, 10-01-2014 18:04:00 - Répondre

L 'idée est sympa , j 'attend le projet avec impatience .

E1d0447b68ef94907b8bb6ebaf097a9c?s=200&r=pg&d=mm
Adrihein, 10-01-2014 17:45:57 - Répondre

Il n'y a pas de meilleur framework. On ne pense et travail pas tous de la même façon. C'est moi qui le dis.

5014b685a65ba018e39628600846876d?s=200&r=pg&d=mm
lpasseb, 10-01-2014 17:09:34 - Répondre

Cherchez plus. Le meilleur framework actuellement et pour 2014 est... Laravel :)

Ce n'est pas moi qui le dis :) http://www.sitepoint.com/best-php-frameworks-2014/

Mais il est vrai qu'à l'utilisation il est simple, ultra puissant, ajout simple de modules et code clair.

1
Grafikart, 10-01-2014 18:01:08 - Répondre

"Meilleur" != "plus populaire"

5014b685a65ba018e39628600846876d?s=200&r=pg&d=mm
lpasseb, 10-01-2014 20:33:07 - Répondre

Oui tu as raison c'est un peu le soucis de l'article car le titre dis bien le meilleur framework pour 2014 et on nous parle de chiffres. En même temps relis mon message c’était un peu sur le style humoristique. En revanche je maintiens qu'il est hyper simple et hyper puissant

2467d3497080e2d248d7af2e1a6bdde2?s=200&r=pg&d=mm
Eyecom, 19-04-2014 21:43:26 - Répondre

il ya pas un Framework mieux que les autres chaque Framwork à ces bons et mauvais cotès selon ce que on veux faire avec

2467d3497080e2d248d7af2e1a6bdde2?s=200&r=pg&d=mm
Eyecom, 19-04-2014 21:44:14 - Répondre

+1
"Meilleur" != "plus populaire"

89d2b4cec9c990ea17ab975a7d9e1bb8?s=200&r=pg&d=mm
laurent, 18-06-2014 16:57:18 - Répondre

Bonjour, dans le style les frameworks dont ont parle peu mais que je trouve absolument excellent tu as jelix. Pour le situer, je dirais qu'il est orienté perfs, compacité et extensibilités. Sans se mettre à jelix, il peut être intéressant de jeter un coup d’œil à la doc pour découvrir les concepts associés : http://docs.jelix.org/fr/manuel-1.6/

Ecdd9c919f58ffa34e45ed78b19fd8e0?s=200&r=pg&d=mm
Kafin HighManner, 10-01-2014 16:13:50 - Répondre

Idée excellente ! Malheureusement j'utilise Cake :)

22109
coloo, 13-01-2014 12:20:39 - Répondre

Pareil, c'est peut etre une bonne occasion de tester un nouvel outil ;)