Créer votre premier package pour Composer

Composer est un outil de gestion de dépendances pour PHP. Cela vous permet de déclarer les librairies dont votre projet a besoin, et cela les installera dans votre projet pour vous.
Mais comment à partir d’une librairie la transformer pour Composer ?

Dans cet article, le but sera de transformer la classe YATSPHP pour l’intégrer dans Packagist.

Installation de Composer

On commence par télécharger l’installeur :

curl -sS https://getcomposer.org/installer | php

On le déplace pour un accès global :

mv composer.phar /usr/local/bin/composer

Description d’un package

Le nom d’un package est composé de cette facon : “vendor/packagename”. Ainsi, pour notre exemple, le “vendor” sera “Progi1984″, et le “packagename” sera “YATSPHP”.
La structure du dossier doit être facile à comprendre et permettre la maintenance facile du projet.
Donc à la racine, il y a un dossier “src” qui contient un dossier du “vendor” qui contient le fichier de classe “packagename”.php.

src
- Progi1984
--- YATSPHP.php

Initialisation de votre package

Il faut d’abord vous placer dans le dossier racine du projet (celui qui contient le dossier src) et lancer un composer init.

[franck@eureka YATSPHP]$ composer init

                                            
  Welcome to the Composer config generator  
                                            


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

Package name (<vendor>/<name>) [franck/yatsphp]: progi1984/yatsphp
Description []: Yet Another System of Template, but in PHP
Author [Progi1984 <progi1984@gmail.com>]: Franck LEFEVRE <progi1984@gmail.com>
Minimum Stability []: dev
License []: Apache License

Define your dependencies.

Would you like to define your dependencies (require) interactively [yes]? no
Would you like to define your dev dependencies (require-dev) interactively [yes]? no

{
    "name": "progi1984/yatsphp",
    "description": "Yet Another System of Template, but in PHP",
    "license": "Apache License",
    "authors": [
        {
            "name": "Franck LEFEVRE",
            "email": "progi1984@gmail.com"
        }
    ],
    "minimum-stability": "dev",
    "require": {

    }
}

Do you confirm generation [yes]? yes
Would you like the vendor directory added to your .gitignore [yes]?yes

On ajoute dans le composer.json deux clés :

  • require : On définit PHP 5.3 comme pré-requis.

"require": {
  "php": ">=5.3.0"
}

  • autoload : On dit à Composer d’autoload tous les fichiers avec le namespace “Progi1984″ dans le dossier “src”.

"autoload": {
  "psr-0": {
    "Progi1984": "src/"
  }
}

Envoyer votre package à Packagist

Après avoir commité le composer.json, ajouté après l’init, il faut aller se connecter sur packagist.org.

  • On va sur la page pour soumettre un nouveau package : https://packagist.org/packages/submit
  • Pour l’URL demandé, on prend l’URL Git du Repository : git@github.com:Progi1984/YATSPHP.git
  • On soumet le formulaire et votre paquet est sur Packagist

A chaque nouveau commit, vous devrez forcer la mise à jour sur packagist à moins d’automatiser la mise à jour :

  • Aller sur votre repository
  • Aller sur la page “Settings”
  • Aller sur l’onglet “Services Hooks”
  • Choisir Packagist
  • Remplir les informations :
    • User : votre login de Packagist
    • Token : vous pouvez le récupérer sur votre page de préférences sur Packagist.org
    • Domain : packagist.org
  • Valider

Et voilà, vous avez créer votre premier package avec Composer et vous l’avez proposé au téléchargement sur Packagist.

Cet article Créer votre premier package pour Composer est apparu en premier sur RootsLabs.

Vus : 1297
Publié par Progi1984 : 78