2012-08-22 12 views
6

Acabo de mudarme a Symfony 2.1, y no puedo entender, ¿cómo puedo instalar mis propios paquetes con Composer?¿Cómo instalar su propio paquete con Composer en Symfony 2.1?

que era muy fácil de 2.0.x en deps:

[MyOwnBundle] 
    [email protected]:weboshin_cms_bundle.git 
    target=/bundles/My/OwnBundle 

Después de que yo sólo provocó bin/vendors update y eso fue todo!

Pero ahora no hay ningún archivo deps, y se supone que debo hacer todo con Composer. Por favor, dame algunas pistas.

+0

** Con Symfony 2.1 también puede utilizar el antiguo director de la dependencia! ** Tienes que crear un archivo 'composer.json' para contar Compositor cuáles son sus dependencias. Debería ver [el de Symfony Standard Edition] (https://github.com/symfony/symfony-standard/blob/master/composer.json). Luego crea otro 'composer.json' para tu paquete. – Florent

+0

@ Florent, tenga en cuenta que ya existe una etiqueta para la herramienta Composer, 'composer-php'. – Charles

Respuesta

6

He encontrado la respuesta.

// my_project/compose.json: 
{ 
    "repositories": [ 
     { 
      "type": "vcs", 
      "url": "own_repository_url" 
     } 
    ], 

    // ... 

    "require": { 
     // ... 
     "own/bundle": "dev-master" 
    } 
}, 

// own_repository/own_bundle/compose.json: 
{ 
    "name": "own/bundle" 
} 
5

Agregue un archivo composer.json a su paquete. Por ejemplo, tengo esto para uno de mis paquetes:

{ 
    "name":  "cg/kint-bundle", 
    "type":  "symfony-bundle", 
    "description": "This bundle lets you use the Kint function in your Twig templates. Kint is a print_r() replacement which produces a structured, collapsible and escaped output", 
    "keywords": ["kint", "debug", "symfony", "bundle", "twig"], 
    "homepage": "http://github.com/barelon/CgKintBundle", 
    "license":  "MIT", 

    "authors": [ 
     { 
      "name": "Carlos Granados", 
      "homepage": "http://github.com/barelon" 
     }, 
     { 
      "name": "Symfony Community", 
      "homepage": "http://github.com/barelon/CgKintBundle" 
     } 
    ], 

    "require": { 
     "php":      ">=5.3.2", 
     "symfony/framework-bundle": ">=2.0.0", 
     "raveren/kint":    "dev-master" 
    }, 

    "minimum-stability": "dev", 

    "autoload": { 
     "psr-0": { 
      "Cg\\KintBundle": "" 
     } 
    }, 

    "target-dir": "Cg/KintBundle" 
} 

A continuación, añada su paquete a packagist.org. Es muy simple, básicamente solo tienes que proporcionar tu dirección de git y hará el resto.

Una vez que su paquete esté disponible en packagist, simplemente agréguelo como una dependencia en el archivo composer.json para su proyecto symfony. En mi caso tengo:

"require": { 
    .... 
    "cg/kint-bundle": "*" 
}, 

A continuación, sólo ejecute "actualización compositor" en el directorio de Symfony y eso es todo! Ni siquiera necesita actualizar el archivo de autocarga, el compositor lo hará por usted. Lo único que queda es cargar el paquete en appkernel.php

+3

Tenga en cuenta que "agregar a packagist" solo es válido para paquetes de código abierto, para los de código cerrado, consulte https://getcomposer.org/doc/05-repositories.md#vcs y https://getcomposer.org/doc /articles/handling-private-packages-with-satis.md – Seldaek

+6

¿Alguien sabe lo que implica el 'symfony-bundle'? ¿Cuáles son las consecuencias de usar este tipo? – greg0ire

Cuestiones relacionadas