PHPackages                             dunglas/todomvc-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Framework](/categories/framework)
4. /
5. dunglas/todomvc-bundle

AbandonedArchivedSymfony-bundle[Framework](/categories/framework)

dunglas/todomvc-bundle
======================

This Bundle is a Symfony2 / Backbone.js / Chaplin.js implementation of TodoMVC

v1.1.1(12y ago)7836812[1 issues](https://github.com/dunglas/DunglasTodoMVCBundle/issues)MITPHPPHP &gt;=5.3.3

Since Feb 23Pushed 11y ago6 watchersCompare

[ Source](https://github.com/dunglas/DunglasTodoMVCBundle)[ Packagist](https://packagist.org/packages/dunglas/todomvc-bundle)[ Docs](http://dunglas.fr)[ RSS](/packages/dunglas-todomvc-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependencies (8)Versions (6)Used By (0)

DunglasTodoMVCBundle
====================

[](#dunglastodomvcbundle)

This a [Symfony](http://symfony.com) implementation of [TodoMVC](http://todomvc.com/).

> 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](https://github.com/FriendsOfSymfony/FOSRestBundle) as REST API generator, [JMSSerializerBundle](http://jmsyst.com/bundles/JMSSerializerBundle) as JSON serializer and [DunglasAngularCsrfBundle](http://dunglas.fr/2014/01/dunglasangularcsrfbundle-protect-your-symfony-angularjs-apps-of-csrf-attacks/) to protect the app against CSRF attacks. Client-side, [Backbone.js](http://backbonejs.org/) and [Chaplin.js](http://chaplinjs.org/) are used and the code is wrote in [CoffeeScript](http://coffeescript.org/).

[![Build Status](https://camo.githubusercontent.com/7a430e52cd7752d6e5eb82937ced846d69c2187e2149896875e66c3751bc923d/68747470733a2f2f7472617669732d63692e6f72672f64756e676c61732f44756e676c6173546f646f4d564342756e646c652e706e67)](https://travis-ci.org/dunglas/DunglasTodoMVCBundle)[![SensioLabsInsight](https://camo.githubusercontent.com/6619bd68d9c8c2d8668f9f4925e2cf71cdcc891325b92ffdbcfeea4e0c4e7cb3/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f35653961393934642d626364642d343063662d386539302d3638633737663132316231382f6d696e692e706e67)](https://insight.sensiolabs.com/projects/5e9a994d-bcdd-40cf-8e90-68c77f121b18)

Demo
----

[](#demo)

Try it online:

Screenshot
----------

[](#screenshot)

[![screenshot](https://camo.githubusercontent.com/115094347aa773b7e5ec52397ca5db0c7a012eb23cfc60b53381ee16e9026b0f/687474703a2f2f64756e676c61732e66722f77702d636f6e74656e742f75706c6f6164732f323031332f30322f73637265656e73686f742d73796d666f6e792d746f646f6d76632e706e67)](https://camo.githubusercontent.com/115094347aa773b7e5ec52397ca5db0c7a012eb23cfc60b53381ee16e9026b0f/687474703a2f2f64756e676c61732e66722f77702d636f6e74656e742f75706c6f6164732f323031332f30322f73637265656e73686f742d73796d666f6e792d746f646f6d76632e706e67)

Yes, this is TodoMVC.

Install
-------

[](#install)

First, [install Symfony using Composer](http://symfony.com/doc/current/book/installation.html). 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/](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
----------------------------

[](#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
--------

[](#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
----------

[](#go-further)

In french: [Utiliser Chaplin.js et Backbone.js avec Symfony 2 : installation et configuration](http://dunglas.fr/2012/12/utiliser-chaplin-js-et-backbone-js-avec-symfony-2-installation-et-configuration/)

Credits
-------

[](#credits)

This bundle has been created by [Kévin Dunglas](http://dunglas.fr). The CoffeeScript code is largely inspired of an old implementation of [Brunch + Chaplin TodoMVC implementation](https://github.com/addyosmani/todomvc/tree/gh-pages/labs/dependency-examples/chaplin-brunch) by [Paul Millr](http://paulmillr.com/).

[![TodoMVC](https://camo.githubusercontent.com/38a86b51e6d11cb19dc462ce1c834084b0d30409a81ada8043da01ef3e69f20e/68747470733a2f2f7261772e6769746875622e636f6d2f616464796f736d616e692f746f646f6d76632f67682d70616765732f6d656469612f6c6f676f2e706e67)](https://camo.githubusercontent.com/38a86b51e6d11cb19dc462ce1c834084b0d30409a81ada8043da01ef3e69f20e/68747470733a2f2f7261772e6769746875622e636f6d2f616464796f736d616e692f746f646f6d76632f67682d70616765732f6d656469612f6c6f676f2e706e67)

###  Health Score

34

—

LowBetter than 77% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity28

Limited adoption so far

Community13

Small or concentrated contributor base

Maturity62

Established project with proven stability

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~78 days

Total

5

Last Release

4509d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/57224?v=4)[Kévin Dunglas](/maintainers/dunglas)[@dunglas](https://github.com/dunglas)

---

Top Contributors

[![dunglas](https://avatars.githubusercontent.com/u/57224?v=4)](https://github.com/dunglas "dunglas (30 commits)")

---

Tags

backbone.jstodoMVCchaplin.js

### Embed Badge

![Health badge](/badges/dunglas-todomvc-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/dunglas-todomvc-bundle/health.svg)](https://phpackages.com/packages/dunglas-todomvc-bundle)
```

###  Alternatives

[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.3M152](/packages/sulu-sulu)[ec-cube/ec-cube

EC-CUBE EC open platform.

78527.0k1](/packages/ec-cube-ec-cube)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
