Skip to content

Instantly share code, notes, and snippets.

@emmanuelbarturen
Last active August 17, 2022 20:01
Show Gist options
  • Save emmanuelbarturen/9f2543278437153a68bdc72a4d7816ba to your computer and use it in GitHub Desktop.
Save emmanuelbarturen/9f2543278437153a68bdc72a4d7816ba to your computer and use it in GitHub Desktop.
Build a laravel package on laravel homestead

Directory Structure

code 
└───dev-packages
│   │
|   └─── <vendor-name>
│   │   |
|   |   └─── <package-name>
│   │   |   | README.md
│   │   |   | .gitignore
│   │   |   | composer.json <-- Composer content example
│   │   |   | composer.lock
│   │   |   | phpunit.xml
│   │   |   └─── src
│   │   │   │    │ <name>Facade.php
│   │   │   │    │ <name>ServiceProvider.php
│   │   │   │    │
|   |   |   └─── test
|   |   |   |    | TestCase.php
└───Laravel-Host
    | ...

Package Composer content example

{
  "name": "vendor-name/package-name",
  "autoload": {
    "psr-4": {
      "VendorName\\PackageName\\": "src"
    }
  },
  "autoload-dev": {
    "psr-4": {
      "VendorName\\PackageName\\Test\\": "tests"
    }
  },
  "require": {
    "php": "^7.2",
    "guzzlehttp/guzzle": "~6.0"
  },
  "extra": {
    "laravel": {
      "providers": [
        "VendorName\\PackageName\\PackageNameServiceProvider"
      ]
    }
  },
  "require-dev": {
    "phpunit/phpunit": "^8.3",
    "orchestra/testbench": "^4.0"
  },
  "minimum-stability": "dev",
  "prefer-stable": true
}

include local package in Laravel Host

in host application (Laravel host)

  1. First at all, run composer install
  2. Paste this entry in composer.json
  ...
 "require": {
        "php": "^7.2",
        "fideloper/proxy": "^4.0",
        "laracasts/flash": "^3.0",
        "laravel/framework": "^6.0",
        "laravel/telescope": "^2.1",
        "laravel/tinker": "^1.0",
        "spatie/laravel-permission": "^3.0",
        "<vendor-name/<package-name>": "<branch>@<minimum-stability-value>" <-- your package
    },
 "repositories": [  <-- Add local repository
        {
            "type": "path",
            "url": "/home/vagrant/code/dev-packages/<vendor-name>/<package-name>"
        }
    ],
  ...
  1. next, composer update.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment