Question

Let's say my package in Laravel is test/test.

I created the package in the workbench and it's been working great following Jason Lewis' tutorial. Now I want to move the package out of the workbench to the vendor directory. This is where all tutorials fall short, even the laravel docs. I didn't want to use git to move the files, so I simply copied the test/test package from the workbench to the vendor directory (and then deleted it from the workbench). I didn't copy the test/test/vendor folder from the workbench (or any other files I noticed in the .gitignore file). I then ran composer install from my new vendor/test/test directory. I then did a composer dump-autoload from the laravel root directory.

Now when I run my application I get an error that I did not get when the package was in the workbench:

Class 'Test\Test\TestServiceProvider' not found
(this is coming from \bootstrap\compiled.php on line 4121)

I also did a php artisan dump-autoload from the laravel root and I get this same error.

Any ideas? Or can someone lead me to a tutorial that takes the package development all the way to it's final resting point in the vendor directory?

Was it helpful?

Solution

Got it working.

I added:

"psr-0": {
    "Test\\Test": "vendor/test/test/src/"
}

to the autoload section in composer.json in the laravel root directory so it looks like this:

"autoload": {
    "classmap": [
        "app/commands",
        "app/controllers",
        "app/models",
        "app/database/migrations",
        "app/database/seeds",
        "app/tests/TestCase.php"
    ],
    "psr-0": {
        "Test\\Test": "vendor/test/test/src/"
    }       
},

If I decide to put the package on Packagist later then I might remove this from the autoload and just keep the package referenced in the "require" part of my composer.json. We'll see what happens when I get that far!

OTHER TIPS

I think you can install your packages from your hard drive as from local repository like this:

"repositories": [
    {
        "type":"vcs",
        "url":"/path/to/repo/here"
    }
],
"require":{
     "me/myrepo":"dev-master"
}
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top