dunglas / todomvc-bundle
This Bundle is a Symfony2 / Backbone.js / Chaplin.js implementation of TodoMVC
Installs: 366
Dependents: 0
Suggesters: 0
Security: 0
Stars: 77
Watchers: 8
Forks: 14
Open Issues: 1
Type:symfony-bundle
Requires
- php: >=5.3.3
- doctrine/doctrine-bundle: ~1.2
- doctrine/orm: ~2.2,>=2.2.3
- dunglas/angular-csrf-bundle: ~0.1
- friendsofsymfony/rest-bundle: ~1.2
- jms/serializer-bundle: ~0.13
- sensio/framework-extra-bundle: ~3.0
- symfony/symfony: ~2.4
- twig/extensions: ~1.0
README
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.
Demo
Try it online: http://symfony-todomvc.dunglas.fr/
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.