Symfony Recipes Repository

Related tags

API recipes symfony
Overview

Symfony Recipes

Symfony recipes allow the automation of Composer packages configuration via the Symfony Flex Composer plugin.

This repository contains "official" recipes for Composer packages endorsed by the Symfony Core Team. For contributed recipes, see the contrib repository.

Creating Recipes

Symfony recipes consist of a manifest.json config file and, optionally, any number of files and directories. Recipes must be stored on their own repositories, outside of your Composer package repository. They must follow the vendor/package/version/ directory structure, where version is the minimum version supported by the recipe.

The following example shows the real directory structure of some Symfony recipes:

symfony/
    console/
        3.3/
            bin/
            manifest.json
    framework-bundle/
        3.3/
            config/
            public/
            src/
            manifest.json
    requirements-checker/
        1.0/
            manifest.json

All the manifest.json file contents are optional and they are divided into options and configurators.

Note

Don't create a recipe for Symfony bundles if the only configuration in the manifest is the registration of the bundle for all environments, as this is done automatically.

Note

When creating a recipe, don't create bundle config files under config/packages/ when no options are set.

Updating Recipes

When a recipe needs to be updated, we try to minimize the impact for the current versions. Creating a new project with a set of dependencies should always use the same recipes to avoid differences between the generated code and the existing documentation, blog posts, videos for these versions.

As a rule of thumb, consider the same principles as semantic versioning:

  • Only change an existing recipe for a version in case of a bug (typos, mis-configuration, ...);
  • If the change is about a new best practice or a different way of doing something, do it for the next version of the dependency.

Options

aliases option

This option (not available in the recipes-contrib repository) defines one or more alternative names that can be used to install the dependency. Its value is an array of strings. For example, if a dependency is published as acme-inc/acme-log-monolog-handler, it can define one or more aliases to make it easier to install:

{
    "aliases": ["acme-log", "acmelog"]
}

Developers can now install this dependency with composer require acme-log.

Configurators

Recipes define the different tasks executed when installing a dependency, such as running commands, copying files or adding new environment variables. Recipes only contain the tasks needed to install and configure the dependency because Symfony is smart enough to reverse those tasks when uninstalling and unconfiguring the dependencies.

There are several types of tasks, which are called configurators: copy-from-recipe, copy-from-package, bundles, env, composer-scripts, gitignore, and post-install-output.

bundles Configurator

Enables one or more bundles in the Symfony application by appending them to the bundles.php file. Its value is an associative array where the key is the bundle class name and the value is an array of environments where it must be enabled. The supported environments are dev, prod, test and all (which enables the bundle in all environments):

{
    "bundles": {
        "Symfony\\Bundle\\DebugBundle\\DebugBundle": ["dev", "test"],
        "Symfony\\Bundle\\MonologBundle\\MonologBundle": ["all"]
    }
}

The previous recipe is transformed into the following PHP code:

// config/bundles.php
return [
    'Symfony\Bundle\DebugBundle\DebugBundle' => ['dev' => true, 'test' => true],
    'Symfony\Bundle\MonologBundle\MonologBundle' => ['all' => true],
];

container Configurator

Adds new container parameters in the services.yaml file by adding your parameters in the container option.

This example creates a new locale container parameter with a default value in your container:

{
    "container": {
        "locale": "en"
    }
}

copy-from-package Configurator

Copies files or directories from the Composer package contents to the Symfony application. It's defined as an associative array where the key is the original file/directory and the value is the target file/directory.

This example copies the bin/check.php script of the package into the binary directory of the application:

{
    "copy-from-package": {
        "bin/check.php": "%BIN_DIR%/check.php"
    }
}

The %BIN_DIR% string is a placeholder that, when installing the recipe, is turned into the absolute path of the binaries directory of the Symfony app. These are the available placeholders: %BIN_DIR%, %CONF_DIR%, %CONFIG_DIR%, %SRC_DIR% %VAR_DIR% and %PUBLIC_DIR%.

Recipes must use these placeholders instead of hardcoding the paths to be truly reusable. The placeholder values can be overridden in the extra section of your composer.json file (where you can define your own placeholders too):

// composer.json
{
    "...": "...",

    "extra": {
        // overriding the value of the default placeholders
        "bin-dir": "bin/",
        "config-dir": "config/",
        "src-dir": "src/",
        "var-dir": "var/",
        "public-dir": "public/",

        // defining a custom placeholder (can be accessed using
        // %MY_SPECIAL_DIR% in the recipe)
        "my-special-dir": "..."
    }
}

copy-from-recipe Configurator

It's identical to copy-from-package but contents are copied from the recipe itself instead of from the Composer package contents. It's useful to copy the initial configuration of the dependency and even a simple initial structure of files and directories:

"copy-from-recipe": {
    "config/": "%CONFIG_DIR%/",
    "src/": "%SRC_DIR%/"
}

env Configurator

Adds the given list of environment variables to the .env and .env.dist files stored in the root of the Symfony project:

{
    "env": {
        "APP_ENV": "dev"
    }
}

This recipe is converted into the following content appended to the .env and .env.dist files:

###> your-recipe-name-here ###
APP_ENV=dev
###< your-recipe-name-here ###

The ###> your-recipe-name-here ### section separators are needed by Symfony to detect the contents added by this dependency in case you uninstall it later. Don't remove or modify these separators.

Tip

Use %generate(secret)% as the value of any environment variable to replace it with a cryptographically secure random value of 16 bytes.

composer-scripts Configurator

Registers scripts in the auto-scripts section of the composer.json file to execute them automatically when running composer install and composer update. The value is an associative array where the key is the script to execute (including all its arguments and options) and the value is the type of script (php-script for PHP scripts, script for any shell script and symfony-cmd for Symfony commands):

{
    "composer-scripts": {
        "vendor/bin/security-checker security:check": "php-script",
        "make cache-warmup": "script",
        "assets:install --symlink --relative %PUBLIC_DIR%": "symfony-cmd"
    }
}

gitignore Configurator

Adds patterns to the .gitignore file of the Symfony project. Define those patterns as a simple array of strings (a PHP_EOL character is added after each line):

{
    "gitignore": [
        ".env",
        "/public/bundles/",
        "/var/",
        "/vendor/"
    ]
}

Similar to other configurators, the contents are copied into the .gitignore file and wrapped with section separators (###> your-recipe-name-here ###) that must not be removed or modified.

post-install-output Configurator

Displays contents in the command console after the package has been installed. Avoid outputting meaningless information and use it only when you need to show help messages or the next step actions.

The contents must be defined in a file named post-install.txt (a PHP_EOL character is added after each line). Symfony Console styles and colors are supported too:

<bg=blue;fg=white>              </>
<bg=blue;fg=white> What's next? </>
<bg=blue;fg=white>              </>

  * <fg=blue>Run</> your application:
    1. Change to the project directory
    2. Execute the <comment>make serve</> command;
    3. Browse to the <comment>http://localhost:8000/</> URL.

  * <fg=blue>Read</> the documentation at <comment>https://symfony.com/doc</>

Validation

When submitting a recipe, several checks are automatically executed to validate the recipe:

  • YAML files suffix must be .yaml, not .yml;
  • YAML files must be valid;
  • YAML files must use 4 space indentations;
  • YAML files use null instead of ~;
  • YAML files under config/packages must not define a "parameters" section;
  • JSON files must be valid;
  • JSON files must use 4 space indentations;
  • Aliases are only supported in the main repository, not the contrib one;
  • Aliases must not be already defined by another package;
  • Aliases are not in the list of special Composer commands (nothing, lock, and mirrors);
  • The manifest file only contains supported keys;
  • The package must exist on Packagist;
  • The package must have at least one version on Packagist;
  • The package must have an MIT or BSD license;
  • The package must be of type "symfony-bundle" if a bundle is registered in the manifest;
  • The package must have a registered bundle in the manifest if type is "symfony-bundle";
  • The package does not only register a bundle for all environments;
  • The package does not depend on symfony/symfony or symfony/security;
  • All text files should end with a newline;
  • All configuration file names under config should use the underscore notation;
  • No "semantically" empty configuration files are created under config/packages;
  • All files are stored under a directory referenced by the "copy-from-recipe" section of "manifest.json";
  • The pull request does not contain merge commits;
  • The Symfony website must be referenced using HTTPs.

Full Example

Combining all the above configurators you can define powerful recipes, like the one used by symfony/framework-bundle:

{
    "bundles": {
        "Symfony\\Bundle\\FrameworkBundle\\FrameworkBundle": ["all"]
    },
    "copy-from-recipe": {
        "config/": "%CONFIG_DIR%/",
        "public/": "%PUBLIC_DIR%/",
        "src/": "%SRC_DIR%/"
    },
    "composer-scripts": {
        "cache:clear": "symfony-cmd",
        "assets:install --symlink --relative %PUBLIC_DIR%": "symfony-cmd"
    },
    "env": {
        "APP_ENV": "dev",
        "APP_SECRET": "%generate(secret)%"
    },
    "gitignore": [
        ".env",
        "/public/bundles/",
        "/var/",
        "/vendor/"
    ]
}
Comments
  • [Doctrine] DATABASE_URL instead of separate DATABASE_* variables less usable

    [Doctrine] DATABASE_URL instead of separate DATABASE_* variables less usable

    opened by dkarlovi 31
  • What to do if a bundle (recipe) needs session?

    What to do if a bundle (recipe) needs session?

    The defaults in framework uncomments the session and thus the session service is not being created. But what can one do if a bundle (recipe) needs the session to be available?

    opened by scuben 23
  • Routing: don't require to install doctrine/annotations to use attributes

    Routing: don't require to install doctrine/annotations to use attributes

    | Q | A | ------------- | --- | License | MIT | Doc issue/PR | n/a

    Currently, installing doctrine/annotations is needed to be able to use the #[Route()] PHP 8 attribute. It'unfortunate because attributes can work out of the box and this dependency is not needed with PHP 8.

    This PR enables "annotation" support (actually attribute support) by default, even if doctrine/annotations isn't installed. This PR targets Symfony 5.3 as it's a new feature. A side effect will be that the default skeleton will not work by default with PHP 7, but IMHO it's not a big issue because most new projects using Symfony 5.3 should use PHP 8. Also, this moves the ecosystem forward.

    opened by dunglas 22
  • [FrameworkBundle] forced use of

    [FrameworkBundle] forced use of "fake" environment

    Why are this the only options:

    // Load cached env vars if the .env.local.php file exists
    // Run "composer dump-env prod" to create it (requires symfony/flex >=1.2)
    if (is_array($env = @include dirname(__DIR__).'/.env.local.php')) {
        $_SERVER += $env;
        $_ENV += $env;
    } elseif (!class_exists(Dotenv::class)) {
        throw new RuntimeException('Please run "composer require symfony/dotenv" to load the ".env" files configuring the application.');
    } else {
        // load all the .env files
        (new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
    }
    

    Why not for example this?

    if (!($_SERVER['APP_ENV'] ?? $_ENV['APP_ENV'] ?? null)) {
        if (is_array($env = @include dirname(__DIR__).'/.env.local.php')) {
            $_SERVER += $env;
            $_ENV += $env;
        } elseif (!class_exists(Dotenv::class)) {
            throw new RuntimeException('Please run "composer require symfony/dotenv" to load the ".env" files configuring the application.');
        } else {
            // load all the .env files
            (new Dotenv())->loadEnv(dirname(__DIR__).'/.env');
        }
    }
    

    Is there a reason not allowing "native" environment to be used I missed? I know, this is all not optimized for docker, because docker is not the only way of doing things, but:

    Docker is not the problem! Docker only makes the design flaw visible. The same applies, when you run without docker on a "user per app" basis and the user has environment set to run the app and there might be some task executed that has to run with the same user and share the environment. The environment is here isolated to the user the app runs on. No collisions at all. Now if you do not have this setup, the above would still work with DotEnv or dumped .env.local.php.

    My strategy using docker would be then:

    • remove symfony/dotenv
    • use .env.local as .env before the flex change
    • use .env as .env.dist before the flex change
    • instead of "overriding" only some vars from .env in .env.local, have them all defined, like before in .env

    This would allow to load native environment als also have a single environment "object". But would also allow the other way of usage you intended for also good reasons.

    opened by akomm 22
  • [phpunit-bridge] default to not failing on deprecations

    [phpunit-bridge] default to not failing on deprecations

    | Q | A | ------------- | --- | License | MIT

    Until now, I've been advocating that peoples' CI should fail whenever a deprecation is reported. But when a vendor throws a deprecation, sometime, it's not your fault and you can't do anything about it (except contributing back to the project, which is good for OSS!)

    Talking on Slack, @greg0ire convinced me we can do this change: by setting SYMFONY_DEPRECATIONS_HELPER to 999999 by default, we make ppls' CI green (when they don't raise more than 1M deprecations.) And it still makes the deprecation report visible on the tests' output so that ppl still have some incentive to fix them.

    Fixes https://github.com/symfony/symfony/issues/27936

    opened by nicolas-grekas 22
  • Impossible to use

    Impossible to use "DATABASE_URL" of Doctrine recipe with "PdoSessionHandler"

    The DATABASE_URL defined in DoctrineBundle recipe (see https://github.com/symfony/recipes/blob/master/doctrine/doctrine-bundle/1.6/manifest.json#L13) uses DSN syntax, that only Doctrine is able to parse.

    This results in inability to use same DATABASE_URL, when configuring PdoSessionHandler class to store sessions in the database.

    Possible solutions:

    1. instead of single DSN settings have separate setting for each database connection property (see https://github.com/symfony/symfony-standard/blob/3.3/app/config/parameters.yml.dist#L5-L9)

    pros: no code changes needed to make it work cons: more settings

    1. improve PdoSessionHandler to parse Doctrine-specific DSN

    pros: PdoSessionHandler works with Doctrine bundle not installed cons: code duplication

    1. improve PdoSessionHandler to use Doctrine created connection

    pros: you will see DB queries made by PdoSessionHandler in Web Profiler cons: PdoSessionHandler would depend on DoctrineBundle

    opened by aik099 22
  • Fix: console cache:clear failing when annotations not enabled

    Fix: console cache:clear failing when annotations not enabled

    | Q | A | ------------- | --- | License | MIT

    When the console cache:clear command is launched without annotations enabled having this part uncommented (as it was previously in the symfony/routing recipe) cause the command to fail.

    Executing script cache:clear [KO]
     [KO]
    Script cache:clear returned with error code 1
    !!  
    !!   // Clearing the cache for the dev environment with debug                       
    !!   // true                                                                        
    !!  
    !!  
    !!                                                                                 
    !!    [Symfony\Component\Config\Exception\FileLoaderLoadException]                 
    !!    Cannot load resource "../src/Controller/". Make sure annotations are enable  
    !!    d.                                                                           
    !!                                                                                 
    !!  
    !!  cache:clear [--no-warmup] [--no-optional-warmers] [-h|--help] [-q|--quiet] [-v|vv|vvv|--verbose] [-V|--version] [--ansi] [--no-ansi] [-n|--no-interaction] [-e|--env ENV] [--no-debug] [--] <command>
    !!  
    !!  
    
    

    This PR should fixe this. (I don't know how to test with a different recipe repo).

    opened by SelrahcD 20
  • --env no longer equivalent to APP_ENV

    --env no longer equivalent to APP_ENV

    Related to https://github.com/symfony/recipes/pull/491

    These two should be equivalent, shouldn't they?

    > APP_ENV=prod APP_DEBUG=0 bin/console cache:clear --no-warmup
    > bin/console cache:clear --no-warmup --env=prod --no-debug
    

    Reproducer:

    > composer create-project symfony/skeleton skeleton 
    > cd skeleton
    > rm -rf vendor
    > composer install --no-dev #error will be here too.
    > bin/console cache:clear --no-warmup --env=prod --no-debug
    
    > Fatal error: Uncaught RuntimeException: The "APP_ENV" environment variable is not set to "prod". Please run "composer require symfony/dotenv" to load the ".env" files configuring the application. in project/src/.bootstrap.php on line 13
    

    Thanks

    opened by bendavies 19
  • nelmio/cors-bundle: update CORS_ALLOW_ORIGIN

    nelmio/cors-bundle: update CORS_ALLOW_ORIGIN

    | Q | A | ------------- | --- | License | MIT

    fixes

    .env: line 48: syntax error near unexpected token `('
    .env: line 48: `CORS_ALLOW_ORIGIN=^https?://localhost(:[0-9]+)?$'
    

    with source .env

    after

    echo $CORS_ALLOW_ORIGIN
    ^https?://localhost(:[0-9]+)?$
    

    let me know if im missing something :thinking:

    opened by ro0NL 19
  • [easy-log-handler] remove recipe

    [easy-log-handler] remove recipe

    | Q | A | ------------- | --- | License | MIT | Doc issue/PR | symfony/symfony-docs#...

    @javiereguiluz maybe you know about this? @fabpot otherwise? This looks scary for now :)

    opened by nicolas-grekas 17
  • [phpunit-bridge recipe] Set `APP_DEBUG` to `false` in `phpunit.xml` to speed up the tests

    [phpunit-bridge recipe] Set `APP_DEBUG` to `false` in `phpunit.xml` to speed up the tests

    It was proposed back in 2019 by @javiereguiluz, but for some reason didn't get enough popularity. Though, now Symfony's documentation mentions this improvement in a "Set-up your Test Environment" paragraph:

    It is recommended to run your test with debug set to false on your CI server, as it significantly improves test performance. This disables clearing the cache. If your tests don't run in a clean environment each time, you have to manually clear it using for instance this code in tests/bootstrap.php:

    // ...
    
    // ensure a fresh cache when debug mode is disabled
    (new \Symfony\Component\Filesystem\Filesystem())->remove(__DIR__.'/../var/cache/test');
    

    We can live with this "inconvenience", especially with the benefit it gets (example for my project):

    - Time: 04:13.959, Memory: 547.01 MB
    + Time: 02:45.307, Memory: 473.00 MB
    

    what do you think to update an official recipe and add the following line to phpunit.xml.dist somewhere here:

    https://github.com/symfony/recipes/blob/a624d3bf1def68bbd2d542b3a99216c0af090552/symfony/phpunit-bridge/5.3/phpunit.xml.dist#L14

    + <server name="APP_DEBUG" value="false" />
    

    This will help many developers creating new projects to not waste time with functional tests.

    Related to:

    • https://github.com/symfony/recipes/issues/1024
    • https://github.com/api-platform/api-platform/pull/2078
    opened by maks-rafalko 16
  • Turn on

    Turn on "doctrine.orm.enable_lazy_ghost_objects" by default

    | Q | A | ------------- | --- | License | MIT | Doc issue/PR | -

    Needs https://github.com/doctrine/DoctrineBundle/pull/1568 and https://github.com/doctrine/orm/pull/10187

    Waiting Code Merge 
    opened by nicolas-grekas 3
  • switch schickling/mailcatcher to jeanberu/mailcatcher

    switch schickling/mailcatcher to jeanberu/mailcatcher

    | Q | A | ------------- | --- | License | MIT | Doc issue/PR | symfony/symfony-docs#...

    Replace schickling/mailcatcher Docker image with jeanberu/mailcatcher because it is smaller with less MB. Functionality should be the same.

    schickling/mailcatcher: Compressed size: 25.44 MB https://github.com/schickling/dockerfiles/blob/master/mailcatcher/Dockerfile

    jeanberu/mailcatcher: Compressed size: 15.27 MB https://github.com/Jean-Beru/docker-mailcatcher/blob/master/Dockerfile

    This should save some MBs on the internets.

    opened by ivoba 1
  • Bundles and api_platform.yaml not publishing

    Bundles and api_platform.yaml not publishing

    Installation on Symfony 6.1 (flex) with PHP 8.0 not publishing the bundle/ (assets) and api_platform.yaml too. Why?

    I install it with: composer req api

    image
    opened by digitaltim-de 0
  • [doctrine-bundle] v. 2.4 file does not exists `docker-compose.yml`

    [doctrine-bundle] v. 2.4 file does not exists `docker-compose.yml`

    I get the warning that the file does not exists docker-composeyml. (Missing .). Mac M1. The file docker-compose.yml does exist in my project. As it is correct in https://github.com/symfony/recipes/blob/b3395a2477b6d58089f92ef3a0d2e58226825a3a/doctrine/doctrine-bundle/2.4/manifest.json it is maybe a problem of the system itself?

    `composer recipes:update doctrine/doctrine-bundle Updating recipe for doctrine/doctrine-bundle...

    Yes! Recipe updated!

    The recipe was updated but with one or more conflicts. Run git status to see them. After resolving, commit your changes like normal.

    NOTE: The file docker-composeyml was not updated because it doesn't exist in your app.

    Would you like to save the "diff" to a file so you can review it? (Y/n) Y

    Saved diff to doctrine.doctrine-bundle.updates-for-deleted-files.patch

    • [doctrine-bundle] Upgrade to Postgres 14 and MySQL 8 (PR https://github.com/symfony/recipes/pull/1115) `

    P.S. The post-install notice should be updated to postgres 14 as well. https://github.com/symfony/recipes/blob/b3395a2477b6d58089f92ef3a0d2e58226825a3a/doctrine/doctrine-bundle/2.4/post-install.txt

    Maybe this Line too. https://github.com/symfony/recipes/blob/main/doctrine/doctrine-bundle/2.4/config/packages/doctrine.yaml#L7

    opened by Chris53897 6
Fork of Symfony Rate Limiter Component for Symfony 4

Rate Limiter Component Fork (Compatible with Symfony <=4.4) The Rate Limiter component provides a Token Bucket implementation to rate limit input and

AvaiBook by idealista 4 Apr 19, 2022
Enter-to-the-Matrix-with-Symfony-Console - Reproduction of the "Matrix characterfall" effect with the Symfony Console component.

Enter to the Matrix (with Symfony Console) Reproduction of the "Matrix characterfall" effect with the Symfony Console component. Run Clone the project

Yoan Bernabeu 23 Aug 28, 2022
Airbrake.io & Errbit integration for Symfony 3/4/5. This bundle plugs the Airbrake API client into Symfony project

AmiAirbrakeBundle Airbrake.io & Errbit integration for Symfony 3/4/5. This bundle plugs the Airbrake API client into Symfony project. Prerequisites Th

Anton Minin 8 May 6, 2022
example repository training REST API

adalah codebase REST-API dari tugas peserta yang mengikuti training membangun REST API dengan lumen selama 2 minggu. studi kasus nya adalah REST API website marketplace untuk agrobisniss.

Nuris Akbar 6 Sep 4, 2021
A rest api repository with laravel.

About Laravel Laravel is a web application framework with expressive, elegant syntax. We believe development must be an enjoyable and creative experie

kyo 2 Jan 17, 2022
A rest api repository with laravel.

API Back End This is the repository for the TKJ 1 Class 12 Web Back End API system, for detailed info, you can go to the main link of the Front End ap

kyo 2 Jan 17, 2022
Package Repository Website - try https://packagist.com if you need your own -

Packagist Package Repository Website for Composer, see the about page on packagist.org for more. This project is not meant for re-use. It is open sour

Composer 1.6k Dec 27, 2022
This bundle provides tools to build a complete GraphQL server in your Symfony App.

OverblogGraphQLBundle This Symfony bundle provides integration of GraphQL using webonyx/graphql-php and GraphQL Relay. It also supports: batching with

Webedia - Overblog 720 Dec 25, 2022
Pure PHP implementation of GraphQL Server – Symfony Bundle

Symfony GraphQl Bundle This is a bundle based on the pure PHP GraphQL Server implementation This bundle provides you with: Full compatibility with the

null 283 Dec 15, 2022
DataTables bundle for Symfony

Symfony DataTables Bundle This bundle provides convenient integration of the popular DataTables jQuery library for realtime Ajax tables in your Symfon

Omines Internetbureau 199 Jan 3, 2023
GraphQL Bundle for Symfony 2.

Symfony 2 GraphQl Bundle Use Facebook GraphQL with Symfony 2. This library port laravel-graphql. It is based on the PHP implementation here. Installat

Sergey Varibrus 35 Nov 17, 2022
Provides a Middleware to integration Tideways into Symfony Messenger Processing

Tideways Middleware for Symfony Messenger This package is currently under development and might be moved into the Tideways PHP Extension or stay indep

Tideways 6 Jul 5, 2022
Integration with your Symfony app & Vite

ViteBundle : Symfony integration with Vite This bundle helping you render all of the dynamic script and link tags needed. Essentially, he provide two

Hugues Tavernier 84 Dec 21, 2022
An Unleash bundle for Symfony applications to provide an easy way to use feature flags

Unleash Bundle An Unleash bundle for Symfony applications. This provide an easy way to implement feature flags using Gitlab Feature Flags Feature. Ins

Stogon 7 Oct 20, 2022
Symfony Health Check Bundle Monitoring Project Status

Symfony Health Check Bundle Version Build Status Code Coverage master develop Installation Step 1: Download the Bundle Open a command console, enter y

MacPaw Inc. 27 Jul 7, 2022
The official Symfony SDK for Sentry (sentry.io)

sentry-symfony Symfony integration for Sentry. Benefits Use sentry-symfony for: A fast Sentry setup Easy configuration in your Symfony app Automatic w

Sentry 628 Dec 29, 2022
A bundle providing routes and glue code between Symfony and a WOPI connector.

WOPI Bundle A Symfony bundle to facilitate the implementation of the WOPI endpoints and protocol. Description The Web Application Open Platform Interf

Champs-Libres 5 Aug 20, 2022
Chat room demo with Symfony UX Turbo

Symfony UX Turbo Demo Application Chat application demo on how Symfony UX Turbo can be used to make server-rendered applications more dynamic without

Druid 5 Sep 22, 2022
This small POC aims to show how Symfony is able, natively without modifications, to use subdirectories for Entities, Repositories, controllers, views…

POC - Using Sub Directories in a Symfony Project This small POC aims to show how Symfony is able, natively without modifications, to use subdirectorie

Yoan Bernabeu 2 May 12, 2022