This a Symfony implementation of TodoMVC.
TodoMVC is a project which offers the same Todo application implemented using MV* concepts in most of the popular JavaScript MV* frameworks of today.
Server-side, it uses FOSRestBundle as REST API generator, JMSSerializerBundle as JSON serializer and DunglasAngularCsrfBundle to protect the app against CSRF attacks. Client-side, Backbone.js and Chaplin.js are used and the code is wrote in CoffeeScript.
Try it online: http://symfony-todomvc.dunglas.fr/
Yes, this is TodoMVC.
First, install Symfony using Composer. Go to your application directory and use composer to install the bundle and its dependencies:
composer require dunglas/todomvc-bundle
Next, enable these bundles in AppKernel.php
:
// app/AppKernel.php
public function registerBundles()
{
return array(
// ...
new JMS\SerializerBundle\JMSSerializerBundle(),
new FOS\RestBundle\FOSRestBundle(),
new Dunglas\AngularCsrfBundle\DunglasAngularCsrfBundle(),
new Dunglas\TodoMVCBundle\DunglasTodoMVCBundle(),
// ...
);
}
And the routes to app/config/routing.yml
:
dunglas_todomvc:
resource: "@DunglasTodoMVCBundle/Resources/config/routing.yml"
prefix: /
Install assets:
php app/console assets:install web
Dump assets if you want to use the app in prod mode:
php app/console assetic:dump --env=prod --no-debug
Create database schema:
php app/console doctrine:schema:create
Done! Open http://localhost/app_dev.php/ (don't forget the trailing slash) in your browser and try this Symfony implementation of TodoMVC.
If you want to rebuild the client-side CoffeScript code go to the Resources/
directory and run:
coffee --bare --output public/js/ coffee/
Add the --watch
option to recompile at each change.
Of course you need the CoffeeScript compiler.
TodoMVC is unsecure by design. Everyone can do everything. If you create a real world Symfony + Backbone.js app be sure to add an authentification system.
In french: Utiliser Chaplin.js et Backbone.js avec Symfony 2 : installation et configuration
This bundle has been created by Kévin Dunglas. The CoffeeScript code is largely inspired of an old implementation of Brunch + Chaplin TodoMVC implementation by Paul Millr.