flosy.info | Développement Web, Open source …

TAG | Package

Sous symfony2 permet de déployer un bundle à l’aide de Composer.
Voyons ensemble comment déployer nos propres bundles à l’aide de Composer.

Nous partons du principe que Composer est installé sur le serveur.

Fichier composer.json

Ce fichier doit être placé à la racine de notre bundle et il va contenir les différentes informations nécessaires à l’installation.
Les différentes propriétés qui le composent sont définies dans la documentation : http://getcomposer.org/doc/04-schema.md.

Voici un exemple :

{
    "name": "flosy/Demo-bundle",
    "description": "Demo Bundle",
    "type": "symfony-bundle",
    "license": "MIT",
    "authors": [
        {
            "name": "Flosy",
            "email": "contact@flosy.info",
            "homepage": "http://www.flosy.info",
            "role": "Developer"
        }
    ],
    "require": {
        "php": ">=5.3.8",
        "symfony/framework-bundle":         "~2.3",
        "twig/twig":                        "*",
        "doctrine/doctrine-bundle":         "*",
    },
    "autoload": {
        "psr-0": { "Flosy\\Bundle\\DemoBundle": "" }
    },
    "target-dir": "Flosy/Bundle/DemoBundle"
}

La propriété license n’est pas indiquée comme obligatoire mais pour soumettre notre bundle à Packagist elle sera requise.

Composer dispose de plusieurs commandes dont une qui permet de valider le fichier composer.json. En plus de valider les erreurs classiques JSON elle vous indiquera les propriétés recommandées pour publier sous forme de package.

  $ composer.phar validate src/Flosy/Bundle/DemoBundle/composer.json
  src/Flosy/Bundle/DemoBundle/composer.json is valid

Déclaration du package

Nous allons utiliser GitHub comme un dépôt pour notre Bundle puis nous le référencerons dans Packagist.

La déclaration d’un package pour Composer s’effectue par le biais du site packagist.org.
Pour référencer un bundle il vous faudra créer un compte ou passer par une authentification via GitHub.

Une fois connecté à Packagist il suffit de donner l’url du dépôt pour soumettre le package.

Une dernière étape optionnelle permet de mettre à jour automatiquement le package lors des mises à jour du dépôt GitHub.
Ceci s’effectue grâce au Service Hooks proposés par GitHub (menu Settings du dépôt GitHub).
Dans le cas du service Packagist il suffit de renseigner les champs suivants :

  • User avec le username présent dans le profile Packagist.
  • Token avec l’API token présent dans le profile Packagist.
  • Domain qui correspond au nom de notre bundle « flosy/demo-bundle » (défini dans le fichier composer.json).

Webographie

Article très complet http://www.idci-consulting.fr/creer-un-bundle-symfony2-reutilisable-et-le-diffuser-via-composer/.

La documentation http://getcomposer.org/doc/

Related Posts:

· ·

Theme Design by devolux.nh2.me