snaquaye / DunglasTodoMVCBundle

A TodoMVC implementation wrote with Symfony, Chaplin.js and Backbone.js

Home Page:http://dunglas.fr/2013/02/symfony-2-todomvc-backbone-chaplin/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

It uses Backbone.js and Chaplin.js client-side and FOSRestBundle for the REST JSON API server-side. The client-side code is wrote in CoffeeScript.

Build Status

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\TodoMVCBundle\DunglasTodoMVCBundle(),
        // ...
    );
}

Add these lines at the end of app/config/config.yml:

fos_rest:
    routing_loader:
        default_format: json
    body_listener:
        decoders:
            json: fos_rest.decoder.jsontoform

Add DunglasTodoMVCBundle to Assetic's bundles option in config.yml:

assetic:
    #...
    bundles:        [ 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 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 Ressources/ 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 and a CSRF protection layer.

Go further

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

TODO

  • Configure FOSRestBundle and AsseticBundle directly in the extension

Credits

This bundle has been created by Kévin Dunglas. The CoffeeScript code is largely inspired of the Brunch + Chaplin TodoMVC implementation of Paul Millr.

TodoMVC

About

A TodoMVC implementation wrote with Symfony, Chaplin.js and Backbone.js

http://dunglas.fr/2013/02/symfony-2-todomvc-backbone-chaplin/

License:MIT License