I have created a package to separate out business logic into easier to distribute modules. The composer file looks like this:

```
{
    "name": "aggiq/johnny-cash",
    "description": "A collection of controllers, models, migrations, and tests for a phonebanking backend.",
    "license": "MIT",
    "authors": [ ... ],
    "require": {
        "illuminate/database": ">=5.5"
    },
    "require-dev": {
        "fzaninotto/faker": "~1.4"
    },
    "autoload": {
        "psr-4": {
            "Johnny\\Phonebanking\\": "src/"
        }
    }
}

```

And our source files are indeed in src/:

src/Controllers/PhonebankController.php
 src/Models/Phonebank.php
 ...

I saved and pushed this to our gitlab repo, and then included it as a dependency in a test project:

```
{
    ...,
    "repositories": [{
        "type": "package",
        "package": {
            "name": "aggiq/johnny-cash",
            "version": "0.1",
            "type": "package",
            "source": {
                "url": "gitlab url",
                "type": "git",
                "reference": "dev"
            }
        }
    }],
    "require": {
        "aggiq/johnny-cash": "*",
    },
    ...
}

```

And when I do composer update, it successfully grabs the project and downloads it into the vendor folder:

```
vendor/aggiq/johnny-cash/Controllers/PhonebankController.php
...

```

However, when I look in the test project's autoload\_psr4.php, it's not there. Is there a step I missed?

Edit: updates the directories to have capital letters to match the namespaces, and here is the generated PSR4 php file:

```
<?php

// autoload_psr4.php @generated by Composer

$vendorDir = dirname(dirname(__FILE__));
$baseDir = dirname($vendorDir);

return array(
);

```