我正在尝试使用composer从github中自动克隆一个git存储库,这个存储库不在packagist中,但它无法工作,我无法弄清楚我做错了什么.
我想我必须把它包含在"存储库"中,如下所示:
"repositories": [
{
"url": "https://github.com/l3pp4rd/DoctrineExtensions.git",
"type": "git"
}
],
Run Code Online (Sandbox Code Playgroud)
然后可能在"require"部分列出它.它应该与此示例类似,但它不起作用.它只是给出了这个错误:
您的要求无法解析为可安装的软件包集.
有没有人试图做这样的事情?
我试图让作曲家从这个项目下载以下库,但是,它没有composer.json文件,所以我不确定这是否可行.
{
"require" : {
"fguillot/picoFeed" : "*"
},
"repositories": [
{
"type": "vcs",
"url": "https://github.com/fguillot/picoFeed"
}
]
}
Run Code Online (Sandbox Code Playgroud)
错误:
[Composer\Repository\InvalidRepositoryException]
在https://github.com/fguillot/picoFeed的任何分支或标记中找不到有效的composer.json ,无法从中加载包.
我想添加一个不在packagist的新包,它是一个本地或非公共存储库.我知道如何做到这一点composer.json.例如:
"repositories": [
{
"type": "vcs",
"url": "https://bitbucket.org/xxxx/xxxxx.git"
}
],
"require": {
"xxxx/xxxxx": "dev-master"
},
Run Code Online (Sandbox Code Playgroud)
但是我想从命令行执行此操作,以便我可以在配置文件中添加此非公共存储库.在Packagist注册的软件包我可以添加:
composer require ....
Run Code Online (Sandbox Code Playgroud)
但是如何处理未在Packagist注册的存储库?
有时,当我运行composer update来升级laravel项目时,可能会发生内容长度不匹配异常.最后,我得到的是因为中国可怕的防火墙:DNS中毒了.所以,如果你是像我这样的人,可以按照以下方式解决它.
我为我的个人PHP库创建了一个SVN存储库,并在根级别添加了一个composer.json文件:
{
"name": "myPersonalLibrary/lib",
"type": "library",
"description": "Light MVC framework for PHP 5.4",
"keywords": ["database","mvc"],
"homepage": "http://mysite.com",
"license": "MIT",
"require": {
"php": ">=5.3.0",
"mustache/mustache": "dev-master"
},
"autoload": {
"psr-0": {
"bbn": "src"
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后我使用以下composer.json创建了一个项目:
{
"require": {
"monolog/monolog": "1.0.*",
"zerkalica/php-code-sniffer": "dev-master",
"mustache/mustache": "dev-master",
"myPersonalLibrary/lib": "*"
},
"repositories": [
{
"type": "svn",
"url": "https://mysite.com/svn/myPersonalLibrary",
"branches-path": false,
"tags-path": false,
"trunk-path": "src"
}
]
}
Run Code Online (Sandbox Code Playgroud)
当我尝试更新我的项目时,我得到: No valid composer.json was found in any branch or tag of https...
我认为问题来自我的文件结构,但我找不到任何关于此的文档:
/my_repo
/src …Run Code Online (Sandbox Code Playgroud) 我们有自己的Satis存储库,我们可以在那里存储我们自己的依赖项.这很好用.
但是如果开发人员使用的包不在我们自己的存储库中,那么Composer将从GitHub通过packagist.org获取它(作为后备).
但我们不想依赖packagist.org.应从我们自己的存储库下载所有依赖项.
我们想知道的是,Satis是否有可能从Packagist下载一个包,如果它还没有在本地可用,然后将其存储并自动添加到Satis自己的存储库中.
这样我们就不必手动将依赖项添加到Satis存储库.
这是我写的开源代码.
https://github.com/simkimsia/UtilityBehaviors/blob/master/README.mdown
我有一个No Stable Release来自packagist.org
我如何获得稳定版贴纸packagist?
我正在使用symfony 2.1,我想向供应商添加一个库.packagist中不存在该库.我无法用作曲家来管理它.当我通过composer安装捆绑包或其他供应商时,它会为我管理自动加载.但是当供应商不是用作曲家管理时,在哪里注册自动加载?
我真的不明白Composer如何使用最小稳定性设置.
我有两个包.让我们说吧,PackageA和PackageB.
该composer.json文件PackageA看起来像这样:
{
"name": "vendor/packagea",
"minimum-stability": "dev",
"require": {
"vendor/packageb": "dev"
}
}
Run Code Online (Sandbox Code Playgroud)
所以PackageA需要PackageB.json PackageB看起来像这样:
{
"name": "vendor/packageb",
"minimum-stability": "dev"
}
Run Code Online (Sandbox Code Playgroud)
所以两者都说最小稳定性dev.所以我假设我这样做:
composer create-project vendor/packagea
Run Code Online (Sandbox Code Playgroud)
但随后它抱怨了这条消息:
[InvalidArgumentException]
Could not find package vendor/packagea with stability stable.
Run Code Online (Sandbox Code Playgroud)
我发现这很奇怪,因为我认为设置最小稳定性dev会将包从其"开发"分支中拉出来.在github的情况下总是如此dev-master.
所以我试着通过告诉作曲家使用什么分支来安装它:
composer create-project vendor/packagea testFolder dev-master
Run Code Online (Sandbox Code Playgroud)
但后来它抱怨它无法找到PackageB:
Installing dependencies (including require-dev)
Your requirements could not be resolved to an installable set of …Run Code Online (Sandbox Code Playgroud) 我正在创建我的第一个PHP Composer包(按照这些说明).我跑了
$ composer init
Run Code Online (Sandbox Code Playgroud)
我正在填写细节,现在问我
包类型(例如库,项目,元数据包,作曲家插件)[]:
我认为这只是一个人类可辨认的标签,用于分类不同的包裹?
我想知道某处是否有包类型的定义?