Skip to content

Instantly share code, notes, and snippets.

@tertek
Created August 16, 2022 06:46
Show Gist options
  • Save tertek/719f180fee5db9c4ddbbfba58ea8016b to your computer and use it in GitHub Desktop.
Save tertek/719f180fee5db9c4ddbbfba58ea8016b to your computer and use it in GitHub Desktop.
Local Composer Package Development

Example package with structure:

project
│   composer.json
│   ...
│
└───packagename
│   │   composer.json
│   │
│   └───src
│       │   foo.php
│       │   ...
│   
│   ...

Add to project ./composer.json

"repositories": [
    {
        "type": "path",
        "url": "/full/or/relative/path/to/development/package"
    }
]

Run in project root

composer require "vendorname/packagename @dev"

Package Example files

packagename/composer.json

{
    "name": "vendorname/packagename",
    "description": "",
    "autoload": {
        "psr-4": {
            "vendorname\\packagename\\": "/src"
        }
    },
    "minimum-stability": "dev"
}

packagename/src/foo.php

<?php

namespace vendor\packagename;

class FOO 
{
    static function bar() {
        ...
    }
}

Usage example in project index.php

<?php

  // Composer Auto-Load
require __DIR__ . '/vendor/autoload.php';

use vendor\packagename\foo;

foo::bar();

Source: https://stackoverflow.com/a/39802804/3127170

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment