Simple, stylish Email Verification for Symfony

Overview

VerifyEmailBundle: Love Confirming Emails

Don't know if your users have a valid email address? The VerifyEmailBundle can help!

VerifyEmailBundle generates - and validates - a secure, signed URL that can be emailed to users to confirm their email address. It does this without needing any storage, so you can use your existing entities with minor modifications. This bundle provides:

  • A generator to create a signed URL that should be emailed to the user.
  • A signed URL validator.
  • Peace of mind knowing that this is done without leaking the user's email address into your server logs (avoiding PII problems).

Installation

Using Composer of course!

composer require symfonycasts/verify-email-bundle

Usage

We strongly suggest using Symfony MakerBundle's make:registration-form command to get a feel for how the bundle should be used. It's super simple! Answer a couple questions, and you'll have a fully functional secure registration system with email verification.

bin/console make:registration-form

Setting Things Up Manually

If you want to set things up manually, you can! But do so carefully: email verification is a sensitive, security process. We'll guide you through the important stuff. Using make:registration-form is still the easiest and simplest way.

The example below demonstrates the basic steps to generate a signed URL that is to be emailed to a user after they have registered. The URL is then validated once the user "clicks" the link in their email.

The example below utilizes Symfony's AbstractController available in the FrameworkBundle:

// RegistrationController.php

use Symfony\Bridge\Twig\Mime\TemplatedEmail;
use Symfony\Component\Mailer\MailerInterface;
use SymfonyCasts\Bundle\VerifyEmail\VerifyEmailHelperInterface;
// ...

class RegistrationController extends AbstractController
{
    private $verifyEmailHelper;
    private $mailer;
    
    public function __construct(VerifyEmailHelperInterface $helper, MailerInterface $mailer)
    {
        $this->verifyEmailHelper = $helper;
        $this->mailer = $mailer;
    }
    
    /**
     * @Route("/register", name="register-user")
     */
    public function register(): Response
    {
        $user = new User();
    
        // handle the user registration form and persist the new user...
    
        $signatureComponents = $this->verifyEmailHelper->generateSignature(
                'registration_confirmation_route',
                $user->getId(),
                $user->getEmail()
            );
        
        $email = new TemplatedEmail();
        $email->from('[email protected]');
        $email->to($user->getEmail());
        $email->htmlTemplate('registration/confirmation_email.html.twig');
        $email->context(['signedUrl' => $signatureComponents->getSignedUrl()]);
        
        $this->mailer->send($email);
    
        // generate and return a response for the browser
    }
}

Once the user has received their email and clicked on the link, the RegistrationController would then validate the signed URL in following method:

// RegistrationController.php

use SymfonyCasts\Bundle\VerifyEmail\Exception\VerifyEmailExceptionInterface;
// ...

class RegistrationController extends AbstractController
{
    // ...
    /**
     * @Route("/verify", name="registration_confirmation_route")
     */
    public function verifyUserEmail(Request $request): Response
    {
        $this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');
        $user = $this->getUser();

        // Do not get the User's Id or Email Address from the Request object
        try {
            $this->verifyEmailHelper->validateEmailConfirmation($request->getUri(), $user->getId(), $user->getEmail());
        } catch (VerifyEmailExceptionInterface $e) {
            $this->addFlash('verify_email_error', $e->getReason());

            return $this->redirectToRoute('app_register');
        }

        // Mark your user as verified. e.g. switch a User::verified property to true

        $this->addFlash('success', 'Your e-mail address has been verified.');

        return $this->redirectToRoute('app_home');
    }
}

Anonymous Validation

It is also possible to allow users to verify their email address without having to be authenticated. A use case for this would be if a user registers on their laptop, but clicks the verification link on their phone. Normally, the user would be required to log in before their email was verified.

We can overcome this by passing a user identifier as a query parameter in the signed url. The diff below demonstrate how this is done based off of the previous examples:

// RegistrationController.php

class RegistrationController extends AbstractController
{
    public function register(): Response
    {
        $user = new User();
    
        // handle the user registration form and persist the new user...
    
        $signatureComponents = $this->verifyEmailHelper->generateSignature(
                'registration_confirmation_route',
                $user->getId(),
-               $user->getEmail()
+               $user->getEmail(),
+               ['id' => $user->getId()] // add the user's id as an extra query param
            );
    }
}

Once the user has received their email and clicked on the link, the RegistrationController would then validate the signed URL in the following method:

// RegistrationController.php

+use App\Repository\UserRepository;

class RegistrationController extends AbstractController
{
-   public function verifyUserEmail(Request $request): Response
+   public function verifyUserEmail(Request $request, UserRepository $userRepository): Response
    {
-       $this->denyAccessUnlessGranted('IS_AUTHENTICATED_FULLY');
-       $user = $this->getUser();

+       $id = $request->get('id'); // retrieve the user id from the url
+
+       // Verify the user id exists and is not null
+       if (null === $id) {
+           return $this->redirectToRoute('app_home');
+       }
+
+       $user = $userRepository->find($id);
+
+       // Ensure the user exists in persistence
+       if (null === $user) {
+           return $this->redirectToRoute('app_home');
+       }

        try {
            $this->verifyEmailHelper->validateEmailConfirmation($request->getUri(), $user->getId(), $user->getEmail());
        } catch (VerifyEmailExceptionInterface $e) {
        // ...
    }
}

Configuration

You can change the default configuration parameters for the bundle by creating a config/packages/verify_email.yaml config file:

symfonycasts_verify_email:
    lifetime: 3600

lifetime

Optional - Defaults to 3600 seconds

This is the length of time a signed URL is valid for in seconds after it has been created.

Reserved Query Parameters

If you add any extra query parameters in the 5th argument of verifyEmailHelper::generateSignature(), such as we did for id above, take note that you cannot use the following query parameters, because they will be overwritten by this bundle:

  • token
  • expires
  • signature

Support

Feel free to open an issue for questions, problems, or suggestions with our bundle. Issues pertaining to Symfony's MakerBundle, specifically make:registration-form, should be addressed in the Symfony Maker repository.

Security Issues

For security related vulnerabilities, we ask that you send an email to ryan [at] symfonycasts.com instead of creating an issue.

This will give us the opportunity to address the issue without exposing the vulnerability before a fix can be published.

Comments
  • Validation anonymously

    Validation anonymously

    If we don't login the user after registration it is impossible to validate the email. It would have been interesting to be able to validate them also if the user is not logged in.

    opened by AlexandrePetrone 27
  • Undefined Class

    Undefined Class

    Hello, I want to use this bundle on my symfony project. I am on symfony 5.4 and php 8.1.1 but i don't undertand why i have this error. I import those classes, but i don't why i have this error. Can someone have any clues ?

    Screenshot 2022-03-18 at 15 52 45 Screenshot 2022-03-18 at 15 52 38
    opened by MathiasGilles 8
  • I don't receive the email confirmation ,even though I login after that.Using Symfony 6 and gmail-mailer.

    I don't receive the email confirmation ,even though I login after that.Using Symfony 6 and gmail-mailer.

    Hello guys, I don't receive my email confirmation and I loggin after that (I am not sure if it should work like that). I was trying to identify where my problem with the internet and I got an interesting article about that.It was written in Feb 2022 I think you ve already figured this issue or you haven't? Should I try to switch to Symfony 5 or there is a problem in my code? Also, I don't see where Gmail has been used in code.

    .env

    ###> symfony/google-mailer ###
    
    MAILER_DSN=gmail://xxxxxxxx@default #with using URL encode 
    ###< symfony/google-mailer ###
    
    

    RegistrationController.php

    $this->emailVerifier->sendEmailConfirmation('app_verify_email', $user,
                    (new TemplatedEmail())
                        ->from(new Address('[email protected]', 'Nurbek'))
                        ->to($user->getEmail())
                        ->subject('Please Confirm your Email')
                        ->htmlTemplate('registration/confirmation_email.html.twig')
                );
    
    return $userAuthenticator->authenticateUser(
                    $user,
                    $authenticator,
                    $request
                );
    
    

    EmailVerifier.php

    
     public function sendEmailConfirmation(string $verifyEmailRouteName, UserOriginal $user, TemplatedEmail $email): void
        {
            $signatureComponents = $this->verifyEmailHelper->generateSignature(
                $verifyEmailRouteName,
                $user->getId(),
                $user->getEmail(),
                ['id' => $user->getId()]
            );
    
            $context = $email->getContext();
            $context['signedUrl'] = $signatureComponents->getSignedUrl();
            $context['expiresAtMessageKey'] = $signatureComponents->getExpirationMessageKey();
            $context['expiresAtMessageData'] = $signatureComponents->getExpirationMessageData();
    
            $email->context($context);
    
            $this->mailer->send($email);
    
    

    Sorry if I forgot something to mention, and thanks in advance.

    opened by Serzhanov 5
  • Link in email is HTTP not HTTPS

    Link in email is HTTP not HTTPS

    The URL in the email link is HTTP which we have set Apache to redirect to HTTPS.

    IF the user is logged in already, clicks the link in the email, it wants them to login again. Is there a way I have have the signedURL include the HTTPS?

    opened by mcgoode 5
  • Cannot autowire service

    Cannot autowire service "App\Security\EmailVerifier"

    I just ran the following commands to create an authentication system with email confirmation:

    composer require symfonycasts/verify-email-bundle
    composer require symfony/security-bundle
    php bin/console make:user
    php bin/console make:auth
    php bin/console make:registration-form
    

    My mailer is configured. I am using Symfony 5 with PHP 7.4. I get the following error:

    Cannot autowire service "App\Security\EmailVerifier": argument "$helper" of method "__construct()" references interface "SymfonyCasts\Bundle\VerifyEmail\VerifyEmailHelperInterface" but no such service exists. Did you create a class that implements this interface?
    
    opened by Ultome 5
  • exception message translations

    exception message translations

    Hi,

    I would like to show the InvalidSignatureException, ExpiredSignatureException and WrongEmailVerifyException error message translated in my language (italian), but I cannot find a way for to do it. Can you help me?

    Thanks

    opened by mardif 4
  • add Polish translations

    add Polish translations

    mirrors https://github.com/SymfonyCasts/reset-password-bundle/pull/149

    Context:

    This link will expire in 1 year which in Polish is Link wygaśnie w ciągu 1 roku This link will expire in 3 years which in Polish is Link wygaśnie w ciągu 3 lat This link will expire in 5 years which in Polish is Link wygaśnie w ciągu 5 lat This link will expire in 6 years which in Polish is Link wygaśnie w ciągu 6 lat This link will expire in 17 years which in Polish is Link wygaśnie w ciągu 17 lat

    the same context applies for month|months, day|days, hour|hours, minute|minutes

    help wanted Status: Needs Review 
    opened by jrushlow 4
  • cannot install the bundle

    cannot install the bundle

    Im getting the following errors on symfony5:

    Problem 1 - Installation request for symfonycasts/verify-email-bundle ^1.0 -> satisfiable by symfonycasts/verify-email-bundle[v1.0.0]. - symfonycasts/verify-email-bundle v1.0.0 requires symfony/config ^4.4 | ^5.0 -> no matching package found.

    Potential causes:

    question 
    opened by PiroozMB 4
  • Invalid signaure

    Invalid signaure

    I do everythong one by one from tutorial. I can register user, login etc. but link in email i recive is always with exeption "The link to verify your email is invalid. Please request a new link."

    I running clear php-apache on docker timezone is OK URL is ok (is in http without ssl) maybe is not good couse i have local addresses for docker ending with ".docker" ? my example url is: http://symofny5.docker/verify/email?expires=1640891770&id=8&signature=%2B%2BqkHGkLMIcXl1qVly%2BhdM9FeXtTLrhTYdQHSJppSZk%3D&token=GEEDqW1Wk2FUfTsy3T2S10%2BzvnVxuXBNo%2B%2BEU2X5NXk%3D

    I checked, and ID is ok, in function "verifyUserEmail" it find good user.

    I use symfony 5.4.2 php 7.4

    Thanks in advanced!

    opened by piotr-sikora-v 3
  • User can connect without having validated his email

    User can connect without having validated his email

    Hello, When the user registers, he receives a validation email. I noticed that if he does not click on the validation link he can still connect to his account. Is this normal and logical behavior?

    duplicate 
    opened by applicationsweb 3
  • add helpful exceptions for userland / traits

    add helpful exceptions for userland / traits

    • AlreadyVerifiedException::class - Used if a users has already been verified.
    • InvalidSignatureException::class - Used anytime Helper::isValidSignature returns false.

    These exception as more appropriate for user land code. But may prove useful in the yet to be written, VerifyEmailControllerTrait::class (PR #1)

    Use case:

     if ($user->isVerified()) {
        throw new AlreadyVerifiedException();
    }
    
    if (!$helper->isValidSignature($request->getRequestUri(), $user->getId(), $user->getEmail())) {
        throw new InvalidSignatureException();
    }
    
    opened by jrushlow 3
  • [docs] Automatic authentication not working without first running make:auth

    [docs] Automatic authentication not working without first running make:auth

    When running the bin/console make:registration-form command, the wizard asks whether you want the user to be automatically authenticated.

    When not having used the MakerBundle's make:auth command (but implementing the form_login following the symfony docs), the command show that no guard authenticators are found, so it cannot enable this functionality. See message below.

    automatically_authenticate

    Though this is related to the MakerBundle command (and a solution can be found by scouring their issue repository), it might be worth mentioning it here in the docs. Maybe adding a small section on "Enabling automatic authentication" stating that it only works when guard authenticators are present and/or that it can be fixed by having set-up the authentication system through make:auth.

    Just a thought, maybe it helps others out that run into the same issue.

    Bug Status: Reviewed MakerBundle 
    opened by Frikkle 1
  • Expiration time does not consider timezone

    Expiration time does not consider timezone

    https://github.com/SymfonyCasts/verify-email-bundle/blob/7b9b1f59093dd260afa91eb6b3a220906a0fe0e2/src/VerifyEmailHelper.php#L51

    time() is timezone independent. Is this effect wanted or a bug?

    It causes the expiration dates to differ from the server time if the timezone is not UTC.

    opened by xong 5
  • Can resend another confirmation email when user trying to login by not being enabled

    Can resend another confirmation email when user trying to login by not being enabled

    Hey! When my user tries to log in when he is not activated, I display a notification telling him to activate his account, and I add a "Resend activation email" link.

    If I want to be able to manage this, I will be forced, each time a user tries to connect, to generate a new unique link allowing them to access a route that will use the bundle to send a confirmation email.

    In my UserChecker.php class :

        public function checkPreAuth(UserInterface $user)
        {
    
            if (!$user instanceof User) {
                return;
            }
            if (!$user->getEnabled() && !$user->isVerified()) {
                // $uniqueResendEmailurl = ....
                throw new CustomUserMessageAccountStatusException("Votre compte n'est pas activé. Veuillez confirmer 
                votre inscription en cliquant sur le lien qui vous a été envoyé par email. Pensez à vérifier dans vos spams. <a href=. "$uniqueResendEmailurl" . >Renvoyer l'email de confirmation</a>");
            }
        }
    

    The bundle should really be able to integrate this functionality directly.

    To counter this, I thought about using another of your bundles. The symfonycasts/reset-password-bundle

    By creating a "ResendConfirmationEmailRequest" entity which is a full clone of the "ResetPasswordRequest" entity from your other bundle. And use the same methods to generate a unique signature to allow a user to receive a confirmation email again.

    What do you think ?

    duplicate enhancement 
    opened by bastien70 4
  • Get the choice to remove expiration parameter

    Get the choice to remove expiration parameter

    Hello, it might be interesting to choose whether or not to add an expiration of the email confirmation link.

    In my case, this would be useful because the administrator of my application is able to create accounts for his employees. They must confirm their account within 10 days, otherwise I delete the account with a CRON job. But suddenly with the expiration date, it forces them to confirm their account very quickly

    enhancement 
    opened by bastien70 5
Releases(v1.12.0)
  • v1.12.0(Oct 4, 2022)

    Howdy Verifiers!

    This is a small release that adds additional translations for our friends over in Poland and we've decided to drop Symfony 4.4 support going forward.


    v1.12.0

    October 4th, 2022

    Feature

    • #127 - [translations] additional Polish translations - @Flower7C3
    • #125 - drop symfony 4.4 support - @jrushlow

    Diff: https://github.com/symfonycasts/verify-email-bundle/compare/v1.11.0...v1.12.0

    Enjoy!

    Source code(tar.gz)
    Source code(zip)
  • v1.11.0(Jul 12, 2022)

    Howdy Verifiers!

    This is a tiny release that adds Catalan Translations and fixes the missing target language attribute in some existing translations...


    v1.11.0

    July 12th, 2022

    Feature

    • #118 - Add catalan translations - @victormhg

    Bug

    • #121 - Add missing target-language attr to all translations - @bocharsky-bw

    Diff: https://github.com/symfonycasts/verify-email-bundle/compare/v1.10.0...v1.11.0

    Enjoy!

    Source code(tar.gz)
    Source code(zip)
  • v1.10.0(Mar 8, 2022)

    Howdy!

    This is a small release that enhances existing Spanish Language Support by adding exception message translations. It also adds Romanian translations.


    v1.10.0

    March 8th, 2022

    Feature

    • #111 - romanian translation - @redecs
    • #110 - Add Spanish translations to exceptions - @larzuk91

    Diff: https://github.com/symfonycasts/verify-email-bundle/compare/v1.9.0...v1.10.0

    Enjoy!

    Source code(tar.gz)
    Source code(zip)
  • v1.9.0(Feb 23, 2022)

    Howdy Verifiers!

    Thanks to @bocharsky-bw and other contributors, we now have support for exception reason translations! French, Russian, and Ukrainian are provided out of the box.

    v1.9.0

    February 23rd, 2022

    Feature

    • #109 - [translations] Slovak - @jrushlow
    • #107 - Translate exception reasons to French - @PauchardThomas
    • #106 - Translate exception reasons to Russian - @bocharsky-bw
    • #105 - Translate exception reasons to Ukrainian - @bocharsky-bw
    • #103 - RFC: Add translations for exception reasons - @bocharsky-bw

    Changes: https://github.com/SymfonyCasts/verify-email-bundle/compare/v1.8.0...v1.9.0

    Enjoy!

    Source code(tar.gz)
    Source code(zip)
  • v1.8.0(Jan 31, 2022)

    Howdy Verifiers!

    This small release adds Hungarian translations.

    v1.8.0

    January 31st, 2022

    Feature

    • #95 - [translations] add Hungarian translations - @jrushlow

    Changes: https://github.com/SymfonyCasts/verify-email-bundle/compare/v1.7.0...v1.8.0

    Enjoy!

    Source code(tar.gz)
    Source code(zip)
  • v1.7.0(Nov 30, 2021)

    Howdy Verifiers!

    This small release adds support for the latest Deprecation Contracts release required for Symfony 6.

    v1.7.0

    November 30th, 2021

    Feature

    • #90 - allow deprecation contracts 3.0 - @jrushlow

    Changes: https://github.com/SymfonyCasts/verify-email-bundle/compare/v1.6.0...v1.7.0

    Enjoy!

    Source code(tar.gz)
    Source code(zip)
  • v1.6.0(Nov 19, 2021)

    Howdy Verifiers!

    This release adds Symfony 6 support (!) and some extra translations.

    v1.6.0

    November 18th, 2021

    Feature

    • #76 - add missing return types for Symfony 6 support - @jrushlow
    • #79 - [translations] add Finnish translations - @jrushlow
    • #80 - [translations] add Czech translations - @jnovakdev
    • #84 - [translations] Add Japanese translation - @nabbisen
    • #85 - allow symfony6 - @tacman

    Changes: https://github.com/SymfonyCasts/verify-email-bundle/compare/v1.5.0...v1.6.0

    Enjoy!

    Source code(tar.gz)
    Source code(zip)
  • v1.5.0(May 5, 2021)

    Howdy Verifiers!

    We have another small release that includes user contributed translations:

    Feature

    • #72 - Add Arabic Translations - @zairigimad
    • #71 - Add Turkish Translations - @kzorluoglu

    Changes: https://github.com/SymfonyCasts/verify-email-bundle/compare/v1.4.0...v1.5.0

    Enjoy!

    Source code(tar.gz)
    Source code(zip)
  • v1.4.0(Apr 12, 2021)

    Howdy Verifiers!

    We have another small release that includes user contributed translations for the Spanish, Portuguese, & Italian languages.

    Changes: https://github.com/SymfonyCasts/verify-email-bundle/compare/v1.3.0...v1.4.0

    Enjoy!

    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Mar 29, 2021)

    Hi friends!

    This is a small release that translations for Polish and Dutch.

    Changes: https://github.com/SymfonyCasts/verify-email-bundle/compare/v1.2.0...v1.3.0

    Have fun!

    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Feb 8, 2021)

    Hi friends!

    This is a small release that translations for 3 languages: German, Serbian and French

    Changes: https://github.com/SymfonyCasts/verify-email-bundle/compare/v1.1.1...v1.2.0

    Have fun!

    Source code(tar.gz)
    Source code(zip)
  • v1.1.1(Dec 18, 2020)

    Hi friends!

    This is a small release that contains one bug fix in #43 thanks to @jrushlow - which fixes #39

    Previously, depending on your server timezone, the "verify email link expiration" may have rendered incorrectly, for example telling the user that they had, for example, 7 hours until the token expired, when in reality it was only 1.

    The fix also adds native translation support. To use it, in the template that sends the verification email, make the following chnage:

    - This link will expire in {{ expiresAt|date('g') }} hour(s).
    + This link will expire in {{ expiresAtMessageKey|trans(expiresAtMessageData, 'VerifyEmailBundle') }}.
    

    Have fun!

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Dec 8, 2020)

    Hi email verifiers!

    This small release adds support for PHP 8. This support is still technically experimental, as we're waiting on GitHub actions to support PHP 8 so the CI pipeline passes. If you find any issues, please let us know!

    Highlights:

    • Added PHP 8 support - see #42 thanks to @ker0x!

    Cheers!

    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(May 24, 2020)

    Hi friends!

    The first stable release of the verify email bundle is here! A huge thanks to @jrushlow who did, basically all of the wonderful work and research to make this bundle secure & easy to use.

    As a reminder, the easiest way to use this bundle is via MakerBundle's make:registration-form command.

    Happy verifying!

    Source code(tar.gz)
    Source code(zip)
Owner
SymfonyCasts
The best Symfony, PHP & Coding Tutorials
SymfonyCasts
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
Supermeteor is PHP SDK use to create cloud message: whatsapp, sms and email etc

Supermeteor Supermeteor is PHP SDK use to create cloud message: whatsapp, sms and email etc How to use install using composer composer require superme

null 0 Jul 15, 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
Auto register services aliases in the Symfony container.

Service Alias Auto Register A bundle for Symfony 5. Description The S.O.L.I.D. principles are a set of five design principles intended to make softwar

(infinite) loophp 1 Feb 4, 2022
Meta package tying together all the key packages of the Symfony CMF project.

This repository is no longer maintained Due to lack of interest, we had to decide to discontinue this repository. The CMF project focusses on the Rout

Symfony CMF 733 Dec 21, 2022
This project lists all the mandatory steps I recommend to build a Website using Symfony, Twig, Doctrine.

{% raw %} <-- keep this for Jekyll to fully bypass this documents, because of the Twig tags. Symfony Website Checklist ?? Summary~~~~ Elevator pitch P

William Pinaud 6 Aug 31, 2022