Yii2 y Composer: cómo obtengo localmente 1 package, ignorando el packagist

Quiero jugar con uno de mis repositorys que actualmente está en Github / Packagist. En realidad, quiero convertirlo en una extensión Yii2. No quiero seguir el git add, git commit, git push, la actualización del compositor, el círculo. Quiero pasar por alto mi Github / Packagist y utilizar únicamente una fuente local. Quiero que actúe como si mi package no existiera en Packagist.

Estoy usando Yii2, así que tiene su propio file composer.json. Entonces, todos deben seguir trabajando, y solo usar una fuente diferente para mi 1 package.

Por supuesto, el compositor Yii2 pnetworkingeterminado requiere bloque:

"require": { "php": ">=5.4.0", "yiisoft/yii2": ">=2.0.6", "yiisoft/yii2-bootstrap": "*", "yiisoft/yii2-swiftmailer": "*", "wadeshuler/my-package" : "*" // <-- needs to pull from local }, 

Entonces tienes el compositor de mi package:

 "autoload": { "psr-4": { "wadeshuler\\Package\\": "src/" } } 

De nuevo, quiero decirle al compositor Yii2.json que cargue mi package localmente e ignore Packagist.

Aparentemente, Composer es más inteligente de lo que le estaba dando crédito 🙂

Estaba probando todo tipo de cosas extra, cuando era realmente simple, y justo en frente de mí.

Composer automáticamente preferirá su package local, si existe.

Entonces en mi Yii2 composer.json, agregue un bloque de repositorys:

 "repositories": [ { "type": "path", "url": "../My-Package" } ], 

y lo requiere como normal:

 "require": { "php": ">=5.4.0", "yiisoft/yii2": ">=2.0.6", "yiisoft/yii2-bootstrap": "*", "yiisoft/yii2-swiftmailer": "*", "wadeshuler/my-package": "*" // <-- My-Package }, 

Aunque mi package está en GitHub, Composer sabe mágicamente que quiero usar la fuente local 🙂