Skip to content
A TodoMVC implementation wrote with Symfony, Chaplin.js and Backbone.js
PHP CoffeeScript CSS
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.

Files

Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
Controller
DependencyInjection
Entity
Form/Type
Resources
Tests
.gitignore
.travis.yml
CHANGELOG.md
DunglasTodoMVCBundle.php
README.md
composer.json
phpunit.xml.dist

README.md

DunglasTodoMVCBundle

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.

Build Status SensioLabsInsight

Demo

Try it online: http://symfony-todomvc.dunglas.fr/

Screenshot

screenshot

Yes, this is TodoMVC.

Install

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.

Compile the client side-code

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.

Security

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.

Go further

In french: Utiliser Chaplin.js et Backbone.js avec Symfony 2 : installation et configuration

Credits

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.

TodoMVC

You can’t perform that action at this time.