PHP code example of tailsfadmin / tailsfadmin-bundle

1. Go to this page and download the library: Download tailsfadmin/tailsfadmin-bundle library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

tailsfadmin / tailsfadmin-bundle example snippets


tailsfadmin/
├── src/                      # TailsfadminBundle (le produit, distribué sur Packagist)
│   ├── TailsfadminBundle.php # AbstractBundle (Symfony >= 6.1)
│   └── Info/                 # Services du bundle
├── config/
│   └── services.yaml         # Services DI du bundle (préfixe tailsfadmin.*)
├── templates/                # Templates Twig namespacés @Tailsfadmin
├── assets/
│   └── controllers/          # Contrôleurs Stimulus du bundle (ADR-003)
├── demo/                     # Application de démo (consomme le bundle en local)
│   ├── src/Controller/       # Contrôleurs de la démo (usage seul)
│   └── templates/            # Templates de la démo
├── tests/                    # Tests du bundle (unitaires)
├── docs/adr/                 # Architecture Decision Records
└── composer.json             # Package du bundle (type: symfony-bundle)
bash
# 1. Cloner le dépôt
git clone https://github.com/thibmonier/tailsfadmin.git
cd tailsfadmin

# 2. Installer les dépendances du bundle
composer install

# 3. Installer la démo
cd demo
composer install

# 4. Lancer la démo (Symfony CLI)
symfony serve -d
# ou : php -S localhost:8000 -t public
bash
php bin/console tailsfadmin:assets:install
bash
php bin/console tailwind:build   # CSS Tailwind v4 (symfonycasts/tailwind-bundle)
php bin/console asset-map:compile
twig
{% block header %}
    <twig:tsf:Layout:Header>
        {# Retirer le sélecteur de langue (pas de route locale_switch) #}
        <twig:block name="language"></twig:block>
        {# Vrai menu utilisateur #}
        <twig:block name="user_menu">
            <a href="{{ path('account') }}">{{ app.user.userIdentifier }}</a>
            <form method="post" action="{{ path('app_logout') }}">
                <input type="hidden" name="_csrf_token" value="{{ csrf_token('logout') }}">
                <button type="submit">{{ 'Déconnexion'|trans }}</button>
            </form>
        </twig:block>
    </twig:tsf:Layout:Header>
{% endblock %}
bash
# Analyse statique (niveau max)
composer phpstan

# Vérification du style PSR-12
composer cs

# Correction automatique du style
composer cs-fix

# Tests unitaires du bundle
composer test

# Tests fonctionnels de la démo
cd demo && php bin/phpunit

# Tests E2E (montage JS réel + audit accessibilité axe-core)
cd demo && composer test:e2e

# Lint des contrôleurs Stimulus (Biome)
npx @biomejs/biome check assets/controllers/
bash
# Conteneur DI — doit lister ≥ 1 service tailsfadmin.*
cd demo && php bin/console debug:container tailsfadmin.bundle_info

# Warmup du cache — doit passer sans erreur
cd demo && php bin/console cache:warmup
bash
# Statut du healthcheck (doit passer à "healthy")
docker compose ps

# Version de PHP et de FrankenPHP dans le conteneur
docker compose exec demo php -v
docker compose exec demo frankenphp version