# Symfony and MongoDB Workshop: Building a Rental Listing Application

## Introduction

We are pleased to release our MongoDB and Symfony workshop to help PHP developers build better applications with MongoDB.

The workshop guides participants through developing a rental listing application using the Symfony framework and MongoDB. In this article, we will focus on creating a "Rental" main page feature, showcasing the integration between Symfony and MongoDB.

This project uses MongoDB Doctrine ODM, which is an object-document mapper (ODM) for MongoDB and PHP. It provides a way to work with MongoDB in Symfony, using the same principles as Doctrine ORM for SQL databases. Its main features include:
- Mapping of PHP objects to MongoDB documents.
- Querying MongoDB using an expressive API.
- Integration with Symfony's dependency injection and configuration system.

## Prerequisites

- Basic understanding of PHP and Symfony
- Familiarity with MongoDB and its query language
- PHP 7.4 or higher installed
- Symfony 5.2 or higher installed
- MongoDB Atlas cluster
- Composer for managing PHP dependencies

Ensure you have the MongoDB PHP driver installed and configured with Symfony. For installation instructions, visit MongoDB PHP Driver Installation.

## What you will learn

- Setting up a MongoDB database for use with Symfony
- Creating a document schema using Doctrine MongoDB ODM
- Developing a controller in Symfony to fetch data from MongoDB
- Displaying data in a Twig template
- Best practices for integrating Symfony with MongoDB

## Workshop content

### Step 1: Setting up your project

Follow the guide to set the needed prerequisites. 

Those steps cover how to install the needed PHP tools and set up your MongoDB Atlas project and cluster.

### Step 2: Configuring the Symfony project and connecting the database to the ODM

Follow the Quick Start section to connect MongoDB Atlas and build the first project files to connect the ODM classes to the database collections.

### Step 3: Building and testing the application 

In this section, you will create the controllers, views, and business logic to list, search, and book rentals:
- Building the application
- Testing the application

### Cloud deployment

A very neat and handy ability is a chapter allowing users to seamlessly deploy their applications using MongoDB Atlas and Symfony to the platform.sh cloud.

## Conclusion

This workshop provides hands-on experience in integrating MongoDB with Symfony to build a rental listing application. Participants will learn how to set up their MongoDB environment, define document schemas, interact with the database using Symfony's controllers, and display data using Twig templates.
For further exploration, check out the official Symfony documentation, Doctrine MongoDB guide and MongoDB manual.

Start building with Atlas today! If you have questions or want to discuss things further, visit our community.

 ## Frequently asked questions (FAQ)

**Q: Who should attend the Symfony and MongoDB rental workshop?**

**A**: This workshop is designed for PHP developers who want to enhance their skills in building web applications using Symfony and MongoDB. A basic understanding of PHP, Symfony, and MongoDB is recommended to get the most out of the workshop.

**Q: What are the prerequisites for the workshop?**

**A**: Participants should have a basic understanding of PHP and Symfony, familiarity with MongoDB and its query language, PHP 7.4 or higher, Symfony 5.2 or higher, a MongoDB Atlas cluster, and Composer installed on their machine.

**Q: What will I learn in the workshop?**

**A**: You will learn how to set up a MongoDB database with Symfony, create a document schema using Doctrine MongoDB ODM, develop a Symfony controller to fetch data from MongoDB, display data in a Twig template, and understand best practices for integrating Symfony with MongoDB.

**Q: How long is the workshop?**

**A**: The duration of the workshop can vary based on the pace of the participants. However, it's designed to be comprehensive yet concise enough to be completed in a few sessions.

**Q: Do I need to install anything before the workshop?**

**A**: Yes, you should have PHP, Symfony, MongoDB Atlas, and Composer installed on your computer. Also, ensure the MongoDB PHP driver is installed and configured with Symfony. Detailed installation instructions are provided in the prerequisites section.

**Q: Is there any support available during the workshop?**

**A**: Yes, support will be available through various channels including the workshop forums, direct messaging with instructors, and the MongoDB community forums.

**Q: Can I access the workshop materials after completion?**

**A**: Yes, all participants will have access to the workshop materials, including code samples and documentation, even after the workshop concludes.

**Q: How does this workshop integrate with MongoDB Atlas?**

**A**: The workshop includes a module on setting up and connecting your application with a MongoDB Atlas cluster, allowing you to experience a real-world scenario of deploying a Symfony application backed by a managed MongoDB service.

**Q: What is Doctrine MongoDB ODM?**

**A**: Doctrine MongoDB ODM (Object-Document Mapper) is a library that provides a way to work with MongoDB in Symfony using the same principles as Doctrine ORM for SQL databases. It offers features like the mapping of PHP objects to MongoDB documents and querying MongoDB with an expressive API.

**Q: Can I deploy the application built during the workshop?**

**A**: Yes, the workshop includes a section on cloud deployment, with instructions on deploying your application using MongoDB Atlas and Symfony to a cloud platform, such as Platform.sh.

**Q: Where can I find more resources to learn about the Symfony and MongoDB integration?**

**A**: For further exploration, check out the official Symfony documentation, Doctrine MongoDB ODM guide, and MongoDB manual. Links to these resources are provided in the conclusion section of the workshop.