2012-09-14 7 views
5

Estoy tratando de usar un paquete dentro de un paquete pero de alguna manera es fallido.¿Cómo declaro correctamente una Dependencia a otro paquete dentro de un paquete?

"repositories": [ 
    { 
     "type": "vcs", 
     "url": "https://github.com/myname/mybundle" 
    } 
], 
"require": { 
    "php": ">=5.3.3", 
    "symfony/symfony": "2.1.*", 
    (...) 
    "myname/mybundle": "*" 
}, 

esto parece funcionar hasta el momento. Pero no puedo entender cómo declarar otra dependencia dentro de "myname/mybundle".

He intentado lo siguiente en el archivo de composer.json myname/mipaquete pero ninguno de ellos trabajaron :(

"repositories": [ 
    { 
     "type": "vcs", 
     "url": "url": "https://github.com/drymek/PheanstalkBundle" 
    } 
], 
"require": { 
    (...) 
    "drymek/PheanstalkBundle": "dev-master" 
} 

y

"repositories": [ 
    { 
     "type": "package", 
     "package": { 
      "name": "drymek/PheanstalkBundle", 
      "version": "dev-master", 
      "source": { 
       "url": "https://github.com/drymek/PheanstalkBundle.git", 
       "type": "git", 
       "reference": "master" 
      } 
     } 
    } 
], 
"require": { 
    (...) 
    "drymek/PheanstalkBundle": "dev-master" 
} 

cuando RUM composer.phar update único que consigue es

- myname/mybundle dev-master requires drymek/pheanstalkbundle dev-master -> no matching package found.

+0

El segundo repositorio está en https: //github.com/digitalpioneers/pheanstalk o en https://github.com/drymek/PheanstalkBundle? –

+0

whoops sorry drymek/PheanstalkBundle ... lo corrigieron ahora;) – Senad

Respuesta

5

Bien He encontrado una respuesta here

Afirma: Repositories are not resolved recursively. You can only add them to your main composer.json. Repository declarations of dependencies' composer.jsons are ignored.

eso está muy mal ... pero ahora al menos sé dónde poner mi dependeny (en el archivo de composer.json raíz)

+0

Eso significa que el compositor no está ** tan ** mucho mejor que el archivo deps antiguo. Me pregunto si es una mala idea resolverlo recursivamente, o simplemente es que no implementaron esto todavía. – Jens

+0

Al menos puede considerar el archivo composer.json de su paquete. Estoy enfrentando un problema realmente extraño en un escenario similar. Mis proyectos necesitan recuperar algunos paquetes zip personalizados, en estos paquetes un archivo composer.json define otros requisitos. Los repositorios de estos requisitos se declaran en el archivo root composer.json. El hecho es que después de que el archivo zip se descarga, se desempaqueta y se coloca en el directorio del proveedor, el compositor ignora por completo su composer.json donde se definen los requisitos del paquete ... ¿Alguna idea? –

+0

hey giuliano, lo siento, pero no sé la respuesta a eso ... pero como veo, tienes una respuesta en tu hilo de todos modos. ;) http://stackoverflow.com/questions/15023126/composer-ignoring-zip-dependecies-composer-json-file – Senad

0

para las dependencias de paquete, por favor ver mi biblioteca https://github.com/AshleyDawson/MultiBundle. Como un ejemplo, extender la MultiBundle y aplicar los getBundles() método, así:

<?php 

namespace Acme\MyBundle; 

use AshleyDawson\MultiBundle\AbstractMultiBundle; 

class AcmeMyBundle extends AbstractMultiBundle 
{ 
    /** 
     * Optional: define a protected constructor to stop instantiation  outside of registerInto() 
     */ 
    protected function __construct() 
    { 

    } 

    /** 
    * Define bundles that this bundle depends on 
    */ 
    protected static function getBundles() 
    { 
     return array(
      new Acme\FooBundle\AcmeFooBundle(), 
      new Acme\BarBundle\AcmeBarBundle(), 
     ); 
    } 
} 

Y luego en el AppKernel registrar el haz y es dependencias:

// app/AppKernel.php 

// ... 

class AppKernel extends Kernel 
{ 
    // ... 

    public function registerBundles() 
    { 
     $bundles = array(
      // ..., 
     ); 

     // Register my bundle and its dependencies 
     \Acme\MyBundle\AcmeMyBundle::registerInto($bundles); 

     // ... 
    } 
} 
Cuestiones relacionadas