Come creare un pacchetto PHP pubblico installabile con Composer

I pacchetti PHP pubblici installabili con Composer vengono pubblicati sul sito Packagist.

Pubblicato da ,
Ultima modifica

In questo articolo vedremo come creare un pacchetto PHP pubblico installabile tremite Composer.

Gli step da seguire sono i seguenti:

  • Creare un account Github;
  • Creare un repository pubblico;
  • Pubblicare il pacchetto su packagist.org.

Per creare un account Github e un repository pubblico fare riferimento ai seguenti link

In questo esempio creerò un repository pubblico QRCode per generare un qrcode usando questa API di Google, inizialmente questo repository sarà vuoto il codice lo scriverò successivamente con il mio IDE preferito.

Adesso sul nostro Desktop creaiamo una cartella di nome QRCode e apriamo il Prompt dei comandi posizionandoci in questa cartella, e digitiamo il seguente comando

$ git clone https://github.com/MicheleDeF/QRCode.git .

in questo caso https://github.com/MicheleDeF è il mio account Github e QRCode.git è il repository, il punto (.) indica che il repository verrà scaricato nella cartella corrente, abbiamo così inizializzato un progetto con git associato al repository che abbiamo creato in precedenza (QRCode), la nostra cartella sarà così strutturata

  • .git
  • .gitignore
  • LICENSE.md
  • README.md

Adesso nella stessa cartella digitiamo il comando composer init

$ composer init


  Welcome to the Composer config generator



This command will guide you through creating your composer.json config.

Package name (<vendor>/<name>) [micde/qr-code]: micheledef/qr-code-php

ci verrà chiesto di scegliere un nome per il nostro pacchetto, nel mio caso è micheledef/qr-code-php, poi una descrizione facoltativa

Description []:

l'autore

Author [MicheleDeF <indirizzo email>, n to skip]:

la stabilità minima, possiamo scegliere tra diverse opzioni, in questo esempio scelgo stable

Minimum Stability []: stable

il tipo di pacchetto, anche qui abbiamo diverse opzioni, in questo caso scelgo library

Package Type (e.g. library, project, metapackage, composer-plugin) []: library

la licenza, in questo esempio è MIT

License []: MIT

poi di definire eventuali dipendenze, in questo esempio nessuna, quindi premiamo invio senza scrivere niente

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]?
Search for a package:
Would you like to define your dev dependencies (require-dev) interactively [yes]?
Search for a package:

poi ci chiede se vogliamo aggiungere una mappatura del caricamento automatico PSR-4, premiamo invio per accettare

Add PSR-4 autoload mapping? Maps namespace "Micheledef\QrCodePhp" to the entered relative path. [src/, n to skip]:

{
    "name": "micheledef/qr-code-php",
    "type": "library",
    "license": "MIT",
    "autoload": {
        "psr-4": {
            "Micheledef\\QrCodePhp\\": "src/"
        }
    },
    "authors": [
        {
            "name": "MicheleDeF",
            "email": "<indirizzo email>"
        }
    ],
    "minimum-stability": "stable",
    "require": {}
}

e infine di confermare la generazione

Do you confirm generation [yes]?
Generating autoload files
Generated autoload files
PSR-4 autoloading configured. Use "namespace Micheledef\QrCodePhp;" in src/
Include the Composer autoloader with: require 'vendor/autoload.php';

Il nostro progetto sarà così composto

  • QRCode/
    • .git
    • src/
    • vendor/
    • .gitignore
    • composer.json
    • LICENSE.md
    • README.md

A questo punto scriviamo il codice con il nostro IDE preferito e alla fine effettuiamo un git push per aggiornare il repository su Github, questo è il codice completo dell'esempio

github.com/MicheleDeF/QRCode

e infine dal nostro profilo Github creiamo una Releases per il nostro repository ad esempio la v1.0.0

Releases

Tutto è pronto per pubblicare il nostro pacchetto su Packagist in modo da poterlo installare tramite Composer.

Creiamo un account su packagist.org, possiamo farlo usando l'account Github visto che già ne abbiamo uno, quindi dal menù Sign in clicchiamo su Use Github

Crea account su Packagist

una volta creato l'account su Packagist possiamo pubblicare il nostro pacchetto, clicchiamo su Submit nel menù in alto

Packagist submit

visualizzeremo una pagina con un modulo dove specificare l'url del nostro repository GitHub

Submit package

in questo esempio l'url è https://github.com/MicheleDeF/QRCode, clicchiamo sul bottone Check e il pacchetto sarà subito pronto per essere installato tramite Composer, questa è la pagina del pacchetto creato come esempio pubblicato su Packagist

packagist.org/packages/micheledef/qr-code-php