# Composer PSR-4

В пустом проекте запускаем composer init (пропускаем все вопросы, вконце отвечаем yes)

Запускаем composer install (создат папку vendor)

Создаём такую структуру папок (index.php и composer.json в корне)

<figure><img src="https://1562788351-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FMyA51SCneIPcN69HMpat%2Fuploads%2FOppiK8uE16f7ygc4tnFT%2Fpasted%20image%200.png?alt=media&#x26;token=b2b27326-ea7c-4716-9851-85c8ec0e0a73" alt=""><figcaption></figcaption></figure>

В composer.json добавляем - "autoload":{ "psr-4":{ "App\\": "App" } }

{% code title="composer.json" %}

```json
{
    "name": "bundi/psr-4",
    "authors": [
        {
            "name": "Overfinch",
            "email": "bundichmail@gmail.com"
        }
    ],
    "require": {},
    "autoload":{
        "psr-4":{
            "App\\": "App"
        }
    }
}
```

{% endcode %}

Запускаем composer update

В файле Filter.php прописываем namespace

{% code title="Filter.php" %}

```php
<?php

namespace App\Auth\Roles;

class Filter {
    function __construct(){
        echo "Filter created";
    }
}
```

{% endcode %}

В файле index.php подключаем автозагрузчик композера, и обращаемся к классу Filter с неймспейсами

{% code title="index.php" %}

```php
<?php

require_once('vendor/autoload.php');

use App\Auth\Roles\Filter;

$filter = new Filter();
```

{% endcode %}

{% hint style="info" %}
Ссылка на репозиторий с кодом

<https://github.com/Overfinch/psr-4>
{% endhint %}
