PHPackages                             gotakk/view-model-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. [Templating &amp; Views](/categories/templating)
4. /
5. gotakk/view-model-bundle

ActiveLibrary[Templating &amp; Views](/categories/templating)

gotakk/view-model-bundle
========================

A Symfony2 bundle to filter and organize data sent to the View from the Controller

52021[1 issues](https://github.com/gotakk/ViewModelBundle/issues)PHP

Since Feb 3Pushed 9y ago2 watchersCompare

[ Source](https://github.com/gotakk/ViewModelBundle)[ Packagist](https://packagist.org/packages/gotakk/view-model-bundle)[ RSS](/packages/gotakk-view-model-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (1)Used By (0)

ViewModelBundle
===============

[](#viewmodelbundle)

A Symfony2 bundle to filter and organize data sent to the View from the Controller

[![Build Status](https://camo.githubusercontent.com/6f48d9dff089dab7ea37283685dedd0947a886aaa0ed6abbc8291d3b2cc0a069/68747470733a2f2f7472617669732d63692e6f72672f676f74616b6b2f566965774d6f64656c42756e646c652e7376673f6272616e63683d6d6173746572)](https://travis-ci.org/gotakk/ViewModelBundle)[![Coverage Status](https://camo.githubusercontent.com/8561f1fc151fa1b98317334d059a8020d20d74f4092666b31a1bc7249bd70b84/68747470733a2f2f636f766572616c6c732e696f2f7265706f732f676f74616b6b2f566965774d6f64656c42756e646c652f62616467652e7376673f6272616e63683d6d617374657226736572766963653d676974687562)](https://coveralls.io/github/gotakk/ViewModelBundle?branch=master)[![Scrutinizer Code Quality](https://camo.githubusercontent.com/d006ca806b95e9402b3b84380056ff3ed61d312952284eec1d0872b485f31e4f/68747470733a2f2f7363727574696e697a65722d63692e636f6d2f672f676f74616b6b2f566965774d6f64656c42756e646c652f6261646765732f7175616c6974792d73636f72652e706e673f623d6d6173746572)](https://scrutinizer-ci.com/g/gotakk/ViewModelBundle/?branch=master)[![Total Downloads](https://camo.githubusercontent.com/306a5f6d6d97b384c95dca7b5546b678b7c032544f0d1428822138c701314675/68747470733a2f2f706f7365722e707567782e6f72672f676f74616b6b2f766965772d6d6f64656c2d62756e646c652f646f776e6c6f616473)](https://packagist.org/packages/gotakk/view-model-bundle)[![License](https://camo.githubusercontent.com/7122025ca3412537ea7701ce19f0cfd9097b258b6df4a95ee00d5abb9f5c8184/68747470733a2f2f706f7365722e707567782e6f72672f676f74616b6b2f766965772d6d6f64656c2d62756e646c652f6c6963656e7365)](https://packagist.org/packages/gotakk/view-model-bundle)
[![SensioLabsInsight](https://camo.githubusercontent.com/cdcb30f05f0ff5cc3fc9a3f1ea97db715b1d09404b86aa2b9394f5a6a9017b45/68747470733a2f2f696e73696768742e73656e73696f6c6162732e636f6d2f70726f6a656374732f37386134333236622d343364312d346332652d393137632d6463316530313366636139352f6269672e706e67)](https://insight.sensiolabs.com/projects/78a4326b-43d1-4c2e-917c-dc1e013fca95)

Installation
------------

[](#installation)

### Step 1: Add this bundle to your project in composer.json

[](#step-1-add-this-bundle-to-your-project-in-composerjson)

```
$ composer require gotakk/view-model-bundle

```

### Step 2: Enable the bundle to your app/AppKernel.php

[](#step-2-enable-the-bundle-to-your-appappkernelphp)

```
// app/AppKernel.php

public function registerBundles()
{
  return array(
    // ...
    new gotakk\ViewModelBundle\gotakkViewModelBundle(),
    // ...
  );
}
```

### Step 3: Create your ViewModel folder structure

[](#step-3-create-your-viewmodel-folder-structure)

- Create a ViewModel folder in your bundle root
- Inside the ViewModel folder create subfolders to organize your files. The convention is to create a subfolder per each controller file.
- In these subfolders, create one ViewModelAssembler file per action.

Example of ViewModel structure in your project

```
src/Acme/FooBarBundle
|
|
|-- Controller
|   |-- CorporateController.php               #
