> For the complete documentation index, see [llms.txt](https://docs.ecotone.tech/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.ecotone.tech/tutorial-php-ddd-cqrs-event-sourcing/before-we-start-tutorial.md).

# Before we start tutorial

## Setup for tutorial

Depending on the preferences, we may choose tutorial version for

* [Symfony](https://symfony.com/)
* [Laravel](https://laravel.com/)
* [Lite (No extra framework)](/modules/ecotone-lite.md)

1. Use [git](https://git-scm.com) to download **starting point** in order to start tutorial

{% tabs %}
{% tab title="Symfony" %}

```bash
git clone git@github.com:ecotoneframework/symfony-tutorial.git
# Go to symfony-tutorial catalog
```

{% endtab %}

{% tab title="Laravel" %}

```bash
git clone git@github.com:ecotoneframework/laravel-tutorial.git
# Go to laravel-tutorial catalog

# Normally you will use "php artisan" for running console commands
# To reduce number of difference during the tutorial
# "artisan" is changed to "bin/console"
```

{% endtab %}

{% tab title="Lite" %}

```bash
git clone git@github.com:ecotoneframework/lite-tutorial.git
# Go to lite-tutorial catalog
```

{% endtab %}
{% endtabs %}

2\. Run command line application to verify if everything is ready.

{% hint style="success" %}
There are two options in which we run the tutorial:

* *Local Environment*
* *Docker (preferred)*
  {% endhint %}

{% tabs %}
{% tab title="Docker" %}

```php
/** Ecotone Quickstart ships with docker-compose with preinstalled PHP 8.0 */
1. Run "docker-compose up -d"
2. Enter container "docker exec -it ecotone-quickstart /bin/bash"
3. Run starting command "composer install"
4. Run starting command "bin/console ecotone:quickstart"
5. You should see:
"Running example...
Hello World
Good job, scenario ran with success!"
```

{% endtab %}

{% tab title="Local Environment" %}

```php
/** You need to have atleast PHP 8.0 and Composer installed */
1. Run "composer install" 
2. Run starting command "bin/console ecotone:quickstart"
3. You should see:
"Running example...
Hello World
Good job, scenario ran with success!"
```

{% endtab %}
{% endtabs %}

{% hint style="success" %}
If you can see "Hello World", then we are ready to go. Time for Lesson 1!
{% endhint %}

{% content-ref url="/pages/-LwJdfbjwW5TzsHUY492" %}
[Lesson 1: Messaging Concepts](/tutorial-php-ddd-cqrs-event-sourcing/php-messaging-architecture.md)
{% endcontent-ref %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.ecotone.tech/tutorial-php-ddd-cqrs-event-sourcing/before-we-start-tutorial.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
