PHPackages                             marcin-orlowski/disco-toolbar-symfony - 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. marcin-orlowski/disco-toolbar-symfony

ActiveSymfony-bundle

marcin-orlowski/disco-toolbar-symfony
=====================================

Customizable toolbar for Symfony projects

2.1.0(3mo ago)1117[5 issues](https://github.com/MarcinOrlowski/php-discotoolbar-symfony/issues)MITPHPPHP &gt;=8.1CI passing

Since Nov 6Pushed 3mo agoCompare

[ Source](https://github.com/MarcinOrlowski/php-discotoolbar-symfony)[ Packagist](https://packagist.org/packages/marcin-orlowski/disco-toolbar-symfony)[ RSS](/packages/marcin-orlowski-disco-toolbar-symfony/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (6)Dependencies (14)Versions (13)Used By (0)

[![img](img/banner.webp)](img/banner.webp)

[![Latest Stable Version](https://camo.githubusercontent.com/26facdf5433e0ff368e4f5a99f4b6cb96621caac6c206bdda0a39e87ade1c465/68747470733a2f2f706f7365722e707567782e6f72672f6d617263696e2d6f726c6f77736b692f646973636f2d746f6f6c6261722d73796d666f6e792f76)](https://packagist.org/packages/marcin-orlowski/disco-toolbar-symfony)[![Monthly Downloads](https://camo.githubusercontent.com/5748b63c2a5e01459a9201f352a7e7cca39aae9d11cd5beb7d7a2234fe68cad5/68747470733a2f2f706f7365722e707567782e6f72672f6d617263696e2d6f726c6f77736b692f646973636f2d746f6f6c6261722d73796d666f6e792f642f6d6f6e74686c79)](https://packagist.org/packages/marcin-orlowski/disco-toolbar-symfony)[![License](https://camo.githubusercontent.com/99e3928cf2ee0a949db254a50188f82e66d6c8d21a8f1ee6920ceecbf8b9b828/68747470733a2f2f706f7365722e707567782e6f72672f6d617263696e2d6f726c6f77736b692f646973636f2d746f6f6c6261722d73796d666f6e792f6c6963656e7365)](https://packagist.org/packages/marcin-orlowski/disco-toolbar-symfony)

Welcome!
========

[](#welcome)

**DiscoToolbar** is a customizable toolbar for your Symfony application, providing all-time access to essential resources right from your browser. Perfect for streamlining your workflow by keeping frequently-used tools, admin panels, and services just one click away.

> **NOTE:** This package is also available for Laravel framework! See [project page](https://github.com/MarcinOrlowski/php-discotoolbar-laravel) for more information!

What is DiscoToolbar?
---------------------

[](#what-is-discotoolbar)

DiscoToolbar creates a persistent banner (typically placed at the top of your layout) that displays during development. It's highly configurable via YAML, allowing you to create custom buttons and links to anything you need: admin panels, database tools, email catchers, API documentation, or any other resource.

[![img](img/disco-toolbar.webp)](img/disco-toolbar.webp)

### Perfect for Docker Environments

[](#perfect-for-docker-environments)

Since configuration is YAML-based, it's incredibly easy to generate dynamically when setting up new environments. When using Docker or similar containerization, port numbers often change between setups - but with DiscoToolbar, you can regenerate the configuration file on each environment startup, ensuring all links always point to the correct ports and services.

Features
--------

[](#features)

- **Fully customizable via YAML** - Easy to configure and regenerate for different environments
- **Flexible widget system** - Create buttons with Font Awesome icons, Symfony UX Icons, emoji, text labels, or any combination
- **Display anything** - Add links to admin panels, database tools, email catchers, API docs, or any resource
- **Action buttons** - Direct access to frequently-used tools and services
- **Environment-aware** - Only loads in development environment, zero production overhead
- **Dynamic configuration** - Perfect for Docker setups where ports change - regenerate config on startup
- **Customizable placement** - Position widgets on left or right side of the toolbar

Requirements
------------

[](#requirements)

- PHP 8.1 or higher
- Symfony 6.4+, 7.0+, or 8.0+

### Optional Dependencies

[](#optional-dependencies)

- [`symfony/ux-icons`](https://symfony.com/bundles/ux-icons/current/index.html) - Required for `icon_type: ux` support (200,000+ icons)

### Notes

[](#notes)

There's also [Laravel version](https://github.com/MarcinOrlowski/php-discotoolbar-laravel) of this package!

[![Laravel](img/banner-laravel.webp)](https://github.com/MarcinOrlowski/php-discotoolbar-laravel)

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

[](#installation)

Install via Composer:

```
composer require --dev marcin-orlowski/disco-toolbar-symfony
```

For access to 200,000+ icons via [Symfony UX Icons](https://ux.symfony.com/icons) (recommended):

```
composer require symfony/ux-icons
```

Register the bundle in `config/bundles.php`:

```
return [
    // ... other bundles
    MarcinOrlowski\DiscoToolbar\DiscoToolbarBundle::class => ['dev' => true],
];
```

Install bundle assets:

```
php bin/console assets:install --symlink
```

Configuration
-------------

[](#configuration)

Create a configuration file with widget configuration. The bundle will automatically detect and load the first file found (in order of preference):

- `.disco.yaml` (project root)
- `.disco.yml` (project root)
- `config/packages/disco_toolbar.yaml` (Symfony convention)
- `config/packages/disco_toolbar.yml`

Example configuration that produces toolbar shown in the screenshot above:

```
widgets:
   left:
     - type: close
     - icon: "fa-bug"
       text: "1.47"
       url: "https://github.com//issues?q=is%3Aissue%20state%3Aopen%20milestone%3A1.47"
       target: "_blank"
       title: "Open Milestone 1.47 Issues"
     - icon: "fa-code-pull-request"
       url: "https://github.com//pulls"
       target: "_blank"
       title: "Open Repository Pull Requests"
     - text: "#1240: [ADM] Fix PageSection CRUD priority field configuration"
       url: "https://github.com/>/issues/1240"
       target: "_blank"
       expand: true
   right:
     - icon: "fa-globe"
       url: "/"
       title: "Go to Main Page"
     - icon: "fa-crown"
       url: "/admin/"
       title: "Open Admin Panel"
     - icon: "fa-database"
       url: "http://localhost:21440"
       target: "_blank"
       title: "Open Database Manager"
     - icon: "fa-envelope"
       url: "http://localhost:21540"
       target: "_blank"
       title: "Open Mailpit"
```

### Widget Properties

[](#widget-properties)

PropertyTypeRequiredDescription`type``string`Widget type: `link` (default) or `close` (dismisses toolbar).`icon`\*`string`Optional icon to display (Font Awesome class, UX Icons name, or emoji/text).`icon_type``string`Icon type: `fa` (Font Awesome, default), `ux` (Symfony UX Icons), or `text`.`text`\*`string`Optional widget label to display alongside icon.`url``string`\*Link URL to redirect to once widget is clicked.`target``string`Link target (e.g., `_blank`). Default: no target`title``string`Tooltip text. If not given, `url` is shown.`expand``bool`Set to `true` to make widget expand and fill available space. Default `false`.\*) Either `icon` or `text` must be provided or exception will be thrown.

### Font Awesome Icons

[](#font-awesome-icons)

DiscoToolbar supports Font Awesome icons for widgets. You have two options for including Font Awesome:

#### Option 1: Automatic Inclusion (Recommended for Quick Setup)

[](#option-1-automatic-inclusion-recommended-for-quick-setup)

Enable automatic Font Awesome inclusion from CDN in your `.disco.yaml` configuration file:

```
font_awesome:
    enabled: true           # Enable auto-include from CDN (default: false)
    version: '6.5.1'        # Font Awesome version to use (optional, default: 6.5.1)

widgets:
    left:
        - icon: "fa-flag-checkered"
          text: "1.0"
          url: "https://github.com/user/repo"
```

**Benefits:**

- Works out of the box - no additional setup needed
- Icons display immediately
- Configuration kept in one place with your widgets

**Note:** Only enable this if your application doesn't already include Font Awesome. If you have Font Awesome in your project, use Option 2 instead to avoid version conflicts.

#### Option 2: Manual Setup (Recommended if Font Awesome Already Installed)

[](#option-2-manual-setup-recommended-if-font-awesome-already-installed)

If your application already includes Font Awesome (via NPM, CDN, or other means), simply use Font Awesome icon classes in your widget configuration. DiscoToolbar will use your existing Font Awesome installation.

**Example:**

```
widgets:
  left:
    - icon: "fa-database"
      icon_type: "fa"  # Use Font Awesome (default)
      url: "http://localhost:8080"
```

If you don't have Font Awesome installed, you can include it manually in your base template:

```

```

#### Using Text/Emoji Instead

[](#using-textemoji-instead)

If you prefer not to use Font Awesome, you can use emoji or plain text:

```
widgets:
  left:
    - icon: "🚀"
      icon_type: "text"  # Use plain text/emoji
      url: "/admin"
```

### Symfony UX Icons

[](#symfony-ux-icons)

DiscoToolbar supports [Symfony UX Icons](https://ux.symfony.com/icons), which provides access to 200,000+ icons from popular icon sets (Lucide, Heroicons, Font Awesome, and more) as inline SVGs.

First, install the UX Icons package:

```
composer require symfony/ux-icons
```

Then use the `ux` icon type with icon names in the `set:name` format:

```
widgets:
  left:
    - icon: "lucide:github"
      icon_type: "ux"
      url: "https://github.com"
    - icon: "heroicons:home"
      icon_type: "ux"
      url: "/"
    - icon: "fa6-solid:database"
      icon_type: "ux"
      url: "http://localhost:8080"
```

Browse available icons at [ux.symfony.com/icons](https://ux.symfony.com/icons).

**Note:** If `symfony/ux-icons` is not installed, widgets with `icon_type: ux` will display the icon name in brackets as a fallback (e.g., `[lucide:github]`).

Usage
-----

[](#usage)

Include the toolbar template in your base layout:

```
{% if app.environment == 'dev' %}
    {% include '@DiscoToolbar/toolbar.html.twig' %}
{% endif %}
```

Customization
-------------

[](#customization)

### Background Colors

[](#background-colors)

Customize the breathing stripes background colors in your `.disco.yaml`:

```
bg_color_light: '#b71c1c'
bg_color_dark: '#8e0000'
```

### Custom CSS

[](#custom-css)

The bundle includes default styling. To customize, override the CSS after importing bundle assets or create your own styles targeting `.disco-toolbar` classes.

### Custom Template

[](#custom-template)

Override the default template by creating: `templates/bundles/DiscoToolbarBundle/toolbar.html.twig`

License
-------

[](#license)

- Written and copyrighted ©2025-2026 by Marcin Orlowski &lt;mail (#) marcinorlowski (.) com&gt;
- DiscoToolbar is open-source software licensed under the [MIT license](http://opensource.org/licenses/MIT)

###  Health Score

36

—

LowBetter than 82% of packages

Maintenance61

Regular maintenance activity

Popularity14

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity51

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

Total

11

Last Release

101d ago

Major Versions

1.6.0 → 2.0.02026-01-30

### Community

Maintainers

![](https://www.gravatar.com/avatar/8870db56c4a0f54e86e6d574b761bac8654795bdad7b52b3ccdb6a42f0d4af80?d=identicon)[MarcinOrlowski](/maintainers/MarcinOrlowski)

---

Top Contributors

[![MarcinOrlowski](https://avatars.githubusercontent.com/u/8041294?v=4)](https://github.com/MarcinOrlowski "MarcinOrlowski (72 commits)")

---

Tags

symfonytoolbardevelopmentnavigationdisco

###  Code Quality

Static AnalysisPHPStan

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/marcin-orlowski-disco-toolbar-symfony/health.svg)

```
[![Health](https://phpackages.com/badges/marcin-orlowski-disco-toolbar-symfony/health.svg)](https://phpackages.com/packages/marcin-orlowski-disco-toolbar-symfony)
```

###  Alternatives

[behat/behat

Scenario-oriented BDD framework for PHP

4.0k96.8M2.0k](/packages/behat-behat)[sulu/sulu

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

1.3k1.3M152](/packages/sulu-sulu)[pentatrion/vite-bundle

Vite integration for your Symfony app

2725.3M13](/packages/pentatrion-vite-bundle)[scheb/2fa

Two-factor authentication for Symfony applications (please use scheb/2fa-bundle to install)

578630.7k1](/packages/scheb-2fa)[scheb/2fa-bundle

A generic interface to implement two-factor authentication in Symfony applications

6914.0M62](/packages/scheb-2fa-bundle)[sineflow/clamav

ClamAV PHP Client for Symfony

10168.5k](/packages/sineflow-clamav)

PHPackages © 2026

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