我正在使用作曲家版本1.0-dev
我阅读https://getComposer.org/doc/faqs/how-do-i-i-in-install-a-package-to-a-custom-path-path-path-for-my-framework.md and https://https://https://github.com/composer/installershave
我在Bitbucket中有一个自定义模块,带有这个简单的Composer.json:
{
"name": "mybitbucketuser/base",
"type": "puppet-module",
"require": {
"composer/installers": "~1.0"
}
}
在我的主要项目中,我有这个作曲家:
{
"minimum-stability": "stable",
"repositories": [
{
"type": "vcs",
"url": "https://bitbucket.org/mybitbucketuser/fluzu-base.git"
}
],
"require": {
"mybitbucketuser/base": "*"
},
"extra": {
"installer-paths": {
"modules/{$name}/": ["mybitbucketuser/base"]
}
}
}
我也尝试过:
"extra": {
"installer-paths": {
"modules/{$name}/": ["type:puppet-module"]
}
}
所有人似乎都可以正常工作,但是作曲家在默认的供应商中安装模块 dir而不是模块中的dir dir。
怎么了?谢谢。
顺便说一句,我正在使用type puppet模块,但实际上是一个phalcon模块。
我刚刚进行了测试,它起作用。这是一个简单的示例,其中hello-world
是一个软件包,hello-world-test
需要该软件包。
文件夹结构
/
hello-world/
src/
HelloWorld/
SayHello.php
composer.json
hello-world-test/
composer.json
/hello-world/src/helloworld/sayhello.php
<?php
namespace HelloWorld;
class SayHello
{
public static function world()
{
return 'Hello World, Composer!';
}
}
/hello-world/composer.json
{
"name": "me/hello-world",
"type": "puppet-module",
"require": {
"composer/installers": "~1.0"
},
"autoload": {
"psr-0": {
"HelloWorld": "src/"
}
}
}
然后我跑了
cd hello-world
git init
git add *
git commit -m "Initial commit"
git tag -a 1.0.0 -m "first stable version"
注意:作曲家期望在此处设置git存储库,并在将
,我们可以省略标签minimum-stability
设置为稳定时也有一个版本标签。如果将minimum-stability
设置为dev
。
/hello-world-test/composer.json
{
"minimum-stability": "stable",
"repositories": [
{
"type": "vcs",
"url": "../hello-world"
}
],
"require": {
"me/hello-world": "*"
}
}
然后我跑了
cd hello-world-test
composer install
作曲家现在自动为composer/installers
创建了vendor
文件夹和我们的hello-world
软件包的modules
文件夹。modules
文件夹是由于包装中的"type": "puppet-module"
而创建的。
作曲家软件包自定义安装程序插件,这将满足您的需求。只需将其分配,并在SRC/Installer CPCInstaller下的Config Directory中添加您的说明,将为您做所有事情。