Skip to content

Tutorial project for how to use the Symfony Messenger component

Notifications You must be signed in to change notification settings

makomweb/symfony-messenger-tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

28c1495 · Jun 21, 2021

History

73 Commits
Jun 15, 2021
Jun 17, 2021
Jun 17, 2021
Jun 17, 2021
Jun 18, 2021
Jun 17, 2021
Jun 16, 2021
Jun 17, 2021
Jun 21, 2021
Jun 21, 2021
Jun 21, 2021
Jun 18, 2021
Jun 17, 2021
Jun 17, 2021
Jun 17, 2021
Jun 16, 2021
Jun 17, 2021

Repository files navigation

Tutorial for using the Symfony Messenger component

image

image

image

Steps

1. Clone the repo

> git clone git@github.com:makomweb/symfony-messenger-tutorial.git

2. Composer install

> cd <symfony-messenger-tutorial>
> composer install

3. Set up the database

php bin/console doctrine:database:create
php bin/console doctrine:schema:update --force

4. Start RabbitMQ via docker

> docker-composer up -d

5. Start Symfony Development Server

> symfony server:start -d

6. Start the message consumer

> php bin/console messenger:consume async -vv

7. Access the app

Your app is running locally under https://127.0.0.1:8000

8. Access the RabbitMQ admin console

Your app is running locally under http://guest:guest@127.0.0.1:15672

Learnings

Create a new project with dependency to Messenger

> symfony new messenger-tutorial
> symfony server:start
> composer require symfony/messenger

Create a new controller

> composer req maker --dev
> composer req annotations
> symfony console make:controller FileUploadController

Configure an async transport

Add persistence

> composer require symfony/orm-pack
> composer require --dev symfony/maker-bundle

Create a new entity "FileUpload"

> php bin/console make:entity

With the properties:

  • name | string | 255 | not null
  • status | string | 255 | not null

Create the database + create migration + run migration

php bin/console doctrine:database:create
php bin/console make:migration
php bin/console doctrine:migrations:migrate

Show file uploads

# to install TWIG view rendering engine
> composer require twig 

Consume message asynchronously

symfony console messenger:consume async -vv

Add RabbitMQ

RabbitMQ is part of the docker-compose inside this repo.

You can start a docker container with docker-compose up -d.

After the container is up you can access the webfrontend via http://guest:guest@localhost:15672.


Fileupload

Migrations

  • php bin/console make:migration
  • php bin/console doctrine:migrations:migrate

Create DB + create Schema

  • php bin/console doctrine:database:create
  • php bin/console doctrine:schema:create
  • php bin/console doctrine:schema:update --force

About

Tutorial project for how to use the Symfony Messenger component

Topics

Resources

Stars

Watchers

Forks