PHPackages                             symplify/symbiotic-controller - 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. symplify/symbiotic-controller

Abandoned → [nette/application](/?search=nette%2Fapplication)ArchivedLibrary[Framework](/categories/framework)

symplify/symbiotic-controller
=============================

v2.5.8(8y ago)02.9k1MITPHPPHP ^7.1

Since Mar 24Pushed 8y ago1 watchersCompare

[ Source](https://github.com/deprecated-packages/SymbioticController)[ Packagist](https://packagist.org/packages/symplify/symbiotic-controller)[ RSS](/packages/symplify-symbiotic-controller/feed)WikiDiscussions master Synced today

READMEChangelogDependencies (9)Versions (50)Used By (0)

Symbiotic Controller
====================

[](#symbiotic-controller)

[![Build Status](https://camo.githubusercontent.com/32cd441e7bcc3d14c956f9922707bf58103d2273af41fc74dfc0a1a192cb10bf/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f53796d706c6966792f53796d62696f746963436f6e74726f6c6c65722f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/Symplify/SymbioticController)[![Downloads](https://camo.githubusercontent.com/4e4c924c73a5d48f49e82ac207b6f41db5454da4407a133bd2d532d5ffde26ed/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f73796d706c6966792f73796d62696f7469632d636f6e74726f6c6c65722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/symplify/symbiotic-controller)[![Subscribe](https://camo.githubusercontent.com/ffb192dcac2900f15ac63bc806736cd3c9965d5df5388d5dd3c98645720b2114/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7375627363726962652d746f2d2d72656c65617365732d677265656e2e7376673f7374796c653d666c61742d737175617265)](https://libraries.io/packagist/symplify%2Fsymbiotic-controller)

*Write controller once and let many other frameworks use it.*

This repository is maintained by [@Lexinek](https://github.com/lexinek).

Install
-------

[](#install)

```
composer require symplify/symbiotic-controller
```

Usage in Nette
--------------

[](#usage-in-nette)

### Register Extensions to you App

[](#register-extensions-to-you-app)

```
# app/config/config.neon

extensions:
    - Symplify\SymbioticController\Adapter\Nette\DI\SymbioticControllerExtension
    - Contributte\EventDispatcher\DI\EventDispatcherExtension
```

### 1. Create `app/Presenters/ContactPresenter.php` Presenter with `__invoke()` Method

[](#1-create-apppresenterscontactpresenterphp-presenter-with-__invoke-method)

#### A. Classic Render Action

[](#a-classic-render-action)

This is what you use the most often.

```
namespace App\Presenter;

use Symplify\SymbioticController\Contract\Template\TemplateRendererInterface;

final class StandalonePresenter
{
    /**
     * @var TemplateRendererInterface
     */
    private $templateRenderer;

    public function __construct(TemplateRendererInterface $templateRenderer)
    {
        $this->templateRenderer = $templateRenderer;
    }

    public function __invoke(): string
    {
        return $this->templateRenderer->renderFileWithParameters(
            __DIR__ . '/templates/Contact.latte'
        );
    }
}
```

#### B. The Simplest Response

[](#b-the-simplest-response)

```
namespace App\Presenters;

use Nette\Application\Responses\TextResponse;

final class ContactPresenter
{
    public function __invoke(): TextResponse
    {
        return new TextResponse('Hi!');
    }
}
```

#### C. Or Json Response

[](#c-or-json-response)

```
namespace App\Presenters;

use Nette\Application\Responses\JsonResponse;

final class ContactPresenter
{
    public function __invoke(): TextResponse
    {
        return new JsonResponse('Hi!');
    }
}
```

### 2. Create `app/templates/Contact.latte` template

[](#2-create-apptemplatescontactlatte-template)

```
Hey :-)
```

### 3. Register Presenter Route

[](#3-register-presenter-route)

```
# app/Router/RouterFactory.php

namespace App\Router;

final class RouterFactory
{
    public function create(): RouteList
    {
        $routes = new RouteList;
        $routes[] = new PresenterRoute('/contact', ContactPresenter::class);
        $routes[] = new Route('/', 'Homepage:default');

        return $routes;
    }
}
```

### 4. Open page in Browser and Enjoy

[](#4-open-page-in-browser-and-enjoy)

That's all :)

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity19

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity71

Established project with proven stability

 Bus Factor1

Top contributor holds 96.4% 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 ~4 days

Total

49

Last Release

3205d ago

Major Versions

v1.4.10 → v2.0.0-RC12017-04-14

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/924196?v=4)[Tomas Votruba](/maintainers/TomasVotruba)[@TomasVotruba](https://github.com/TomasVotruba)

---

Top Contributors

[![TomasVotruba](https://avatars.githubusercontent.com/u/924196?v=4)](https://github.com/TomasVotruba "TomasVotruba (80 commits)")[![JanMikes](https://avatars.githubusercontent.com/u/3995003?v=4)](https://github.com/JanMikes "JanMikes (2 commits)")[![dg](https://avatars.githubusercontent.com/u/194960?v=4)](https://github.com/dg "dg (1 commits)")

---

Tags

adrcontrollerinvocable-controllermvcmvpnettephp71presenter

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/symplify-symbiotic-controller/health.svg)

```
[![Health](https://phpackages.com/badges/symplify-symbiotic-controller/health.svg)](https://phpackages.com/packages/symplify-symbiotic-controller)
```

###  Alternatives

[nette/nette

👪 Nette Framework - innovative framework for fast and easy development of secured web applications in PHP (metapackage)

1.6k2.8M337](/packages/nette-nette)[nette/web-project

Nette: Standard Web Project

10992.8k](/packages/nette-web-project)[duxweb/dux-lite

The lightweight framework based on slim php

161.0k9](/packages/duxweb-dux-lite)

PHPackages © 2026

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