PHPackages                             bravo3/spa-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. bravo3/spa-bundle

ActiveLibrary[Framework](/categories/framework)

bravo3/spa-bundle
=================

Symfony 2 bundle to create a SPA web application

0.1.1(11y ago)074MITJavaScriptPHP &gt;=5.5.0

Since Mar 6Pushed 11y ago1 watchersCompare

[ Source](https://github.com/bravo3/spabundle)[ Packagist](https://packagist.org/packages/bravo3/spa-bundle)[ RSS](/packages/bravo3-spa-bundle/feed)WikiDiscussions master Synced 1mo ago

READMEChangelogDependenciesVersions (3)Used By (0)

Bravo3 Single-Page Application for Symfony 2
============================================

[](#bravo3-single-page-application-for-symfony-2)

This bundle enables you to turn any normal Symfony 2 application into a 'SPA' application, causing the first page load to be rendered normally and all consequtive page hits to be loaded via XHR.

Page content is broken into "blocks", only required blocks of the main site layout will be re-rendered.

This bundle requires your application to use Twig rendering, only minor changes to the controller are required:

```
class HomeController extends AbstractSpaController
{
    /**
     * @Route("/", name="home")
     * @param Request $request
     * @return Response
     */
    public function homeAction(Request $request)
    {
        // ..

        // Call the AbstractSpaController#render() function to trigger the SPA engine -
        return $this->render('@MySiteBundle/Home/home.html.twig', ['param' => 'value']);
    }
}

```

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity49

Maturing project, gaining track record

 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 ~64 days

Total

2

Last Release

4028d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0a82084f38dfacd80655e26cd45b5bb9ab43eaa09b3a97c5c4a2350fe41b0c20?d=identicon)[jordonsc](/maintainers/jordonsc)

---

Top Contributors

[![jordonsc](https://avatars.githubusercontent.com/u/347611?v=4)](https://github.com/jordonsc "jordonsc (2 commits)")

### Embed Badge

![Health badge](/badges/bravo3-spa-bundle/health.svg)

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

###  Alternatives

[laravel/passport

Laravel Passport provides OAuth2 server support to Laravel.

3.4k85.0M532](/packages/laravel-passport)[nolimits4web/swiper

Most modern mobile touch slider and framework with hardware accelerated transitions

41.8k177.2k1](/packages/nolimits4web-swiper)[laravel/dusk

Laravel Dusk provides simple end-to-end testing and browser automation.

1.9k36.7M259](/packages/laravel-dusk)[laravel/prompts

Add beautiful and user-friendly forms to your command-line applications.

712181.8M596](/packages/laravel-prompts)[cakephp/chronos

A simple API extension for DateTime.

1.4k47.7M121](/packages/cakephp-chronos)[laravel/pail

Easily delve into your Laravel application's log files directly from the command line.

91545.3M590](/packages/laravel-pail)

PHPackages © 2026

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