标签: satis

我可以将packagist.org的依赖项与我自己的Composer Satis安装同步或镜像吗?

我们有自己的Satis存储库,我们可以在那里存储我们自己的依赖项.这很好用.

但是如果开发人员使用的包不在我们自己的存储库中,那么Composer将从GitHub通过packagist.org获取它(作为后备).

但我们不想依赖packagist.org.应从我们自己的存储库下载所有依赖项.

我们想知道的是,Satis是否有可能从Packagist下载一个包,如果它还没有在本地可用,然后将其存储并自动添加到Satis自己的存储库中.

这样我们就不必手动将依赖项添加到Satis存储库.

php dependency-management composer-php satis packagist

16
推荐指数
2
解决办法
4798
查看次数

在Symfony 2.1中使用composer管理供应商时,在哪里注册自动加载?

我正在使用symfony 2.1,我想向供应商添加一个库.packagist中不存在该库.我无法用作曲家来管理它.当我通过composer安装捆绑包或其他供应商时,它会为我管理自动加载.但是当供应商不是用作曲家管理时,在哪里注册自动加载?

composer-php symfony-2.1 satis packagist

14
推荐指数
2
解决办法
9264
查看次数

Composer不为库生成自动加载

我已经设置了两个项目,一个'init'和一个库,这是init需要的.它们都设置了PSR-0自动加载,但是库中的自动加载值未添加到init项目中的vendor/composer/autoload_namespaces.php中.

来自库的示例composer.json:

{
    "name": "lxp/library",
    "description": "A test library",
    "autoload": {
        "psr-0": {
            "LXP\\Library": "src/"
        }
    }        
}
Run Code Online (Sandbox Code Playgroud)

从需要该库的项目示例composer.json:

{
    "name": "lxp/init",
    "name": "A test init",
    "autoload": {
        "psr-0": {
            "LXP\\Init": "src/"
        }
    },
    "repositories": [
        {
            "type": "composer",
            "url": "http://satis.repo.redacted/"
        }
    ],
    "require": {
        "lxp/library": "dev-master"
    }
}
Run Code Online (Sandbox Code Playgroud)

该库包含文件src/LXP/Library/Something.php中的LXP\Library\Something类.

需要库的项目在文件src/LXP/Init/Now.php中包含类LXP\Init\Now.

在'init'项目中运行composer install时,它会下载库项目并将其正确放入供应商,但vendor/composer/autoload_namespaces.php不包含库的自动加载信息,只包含当前项目的信息.

我究竟做错了什么?如果我在库项目中运行dump-autoload,那么autoload_namespaces.php文件是正确的,并且一个快速的引导程序脚本确认它确实提取了该类.

编辑 - 这是令人满意的packages.json的问题.为了修复它,我不得不将库的composer.json中的自动加载信息添加到我提供的json文件中,这似乎是一个不必要的重复,所以我可能做错了.是否有一个地方可以存储自动加载信息以满足库?例如,是否可以读取它扫描的库中存在的composer.json文件?

编辑#2 - Satis不会从指定为'package'类型的存储库中读取composer.jsons.事后看来这很明显,因为'package'用于没有composer.json的库,并且是一种围绕它们包装类似于作曲家的依赖管理的方法.

将satisf.json的存储库更改为'vcs'类型意味着读取了composer.json,并且解析了信息(包括自动加载规范)并将其存储在packages.json中.

@Seldaek - 谢谢你建议我的满意配置是问题所在,我希望这能澄清我职位上任何其他人的满意/作曲家行为.

php autoload psr-0 composer-php satis

11
推荐指数
3
解决办法
6073
查看次数

Satis Composer存储库安装

我是Satis的新手,我找到了这个教程:https://getcomposer.org/doc/articles/handling-private-packages-with-satis.md.

但我还是不能让自己开始.Satis是基于项目安装的吗?如果是这样,那是否意味着我必须在每个新项目上安装Satis?

我试图composer.phar create-project composer/satis --stability=dev从一个文件夹运行,我收到错误消息,说找不到composer.phar.所以,我试着用composer create-project composer/satis --stability=dev它在我运行作曲家的文件夹中创建一个名为satisf的新文件夹.

那么,我怎么能安装Satis并使用它呢?你知道任何教我们的视频教程吗?我在Youtube上找不到任何东西.

谢谢.

php composer-php satis

7
推荐指数
2
解决办法
4627
查看次数

UnexpectedValueException无法解析版本约束^ 1.0.2:无效的版本字符串"^ 1.0.2"

Composer给出以下错误:

Could not load package phpspec/prophecy in http://packagist.org: [UnexpectedValueException] Could not parse version constraint ^1.0.2: Invalid version string "^1.0.2"  
Run Code Online (Sandbox Code Playgroud)

composer-php satis

7
推荐指数
2
解决办法
3611
查看次数

为wordpress主题和插件创建令人满意的作曲家私人存储库

我的目标是将一个composer.json文件提交到我们的项目存储库,该文件指定应该为该项目使用哪些主题或插件,当开发人员下载回购时,他们需要做的就是运行composer install.我们希望将插件保留在项目仓库之外,以阻止项目仓库的膨胀,并且拉动和推动变得缓慢.

对于标准的wordpress插件,例如"Jetpack by WordPress.com",这很好,因为我们将使用https://wpackagist.org/.但是,对于支付插件和内部定制的Premium而无法开源的我们希望将它们托管在Private Composer Repository中.

因为我们将有这些插件的多个版本,我希望所有版本都能显示,如1.1,1.2,1.3,因此开发人员可以在composer.json中指定哪个版本是必需的,例如,如果未来的版本破坏了某些东西,我们需要回滚到以前的版本.

我已经阅读了设置Satis私有存储库的基础知识,我已经这样做但是我不能让它循环遍历版本的git标签,并指定它是一个Wordpress插件并将其安装在正确的位置.

这是我第一次获得所有git标记版本的尝试:

{
    "name": "Private Repository",
    "homepage": "http://packages.privaterepo.com",
    "repositories": [
        {
            "type": "vcs",
            "url": "git@bitbucket.org:companyname/project.git"
        }
    ],
    "require-all": true
}
Run Code Online (Sandbox Code Playgroud)

这是我必须指定版本,但让它安装在正确的Wordpress插件位置:

{
    "name": "Private Repository",
    "homepage": "http://packages.privaterepo.com",
    "repositories": [
        {
            "type": "package",
            "package": {
                "name": "company/project",
                "description": "WordPress Plugin",
                "version": "1.0",
                "source": {
                    "type": "git",
                    "url": "git@bitbucket.org:company/project.git",
                    "reference": "origin/master"
                },
                "type": "wordpress-plugin",
                "require": {
                    "php": ">=5.3.2",
                    "composer/installers": "*"
                }
            }
        }
    ],
    "require-all": true,
    "require-dependencies": true,
    "extra": { …
Run Code Online (Sandbox Code Playgroud)

php git wordpress composer-php satis

7
推荐指数
1
解决办法
635
查看次数

在满意的存储库中使用本地存储库

我有一台服务器,我有一些git repos和一个令人满意的存储库设置.我想设置满意的存储库来列出本地存储库.

// satis.json
{
  "name": "NJ16 Repositories",
  "homepage": "http://packages.example.com",
  "repositories": [
        { 
            "type": "vcs", 
            "url": "https://bitbucket.org/nicholasjohn16/example.git" 
        },
        {
            "type": "vcs",
            "url": "git@example.com:/var/repo/test-repo.git"
        }
  ],
  "require-all": true,
  "output-dir": "web/"
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,bitbucket git repo被成功访问和更新,但是当满意地构建本地git repo时,它挂起在以下行并且不会继续.

Executing command (/root/.cache/composer/vcs/git-example.com--repo-test-repo.git): git rev-parse --git-dir
Executing command (/root/.cache/composer/vcs/git-example.com--repo-test-repo.git): git remote -v
Executing command (/root/.cache/composer/vcs/git-example.com--repo-test-repo.git): git remote set-url origin 'git@example.com:/repo/test-repo.git' && git remote update --prune origin
Run Code Online (Sandbox Code Playgroud)

我已经尝试使用../../repo/test-repo.git,并/var/repo/test-repo.git用于回购网址.当我这样做时,构建成功完成,但当我尝试使用composer需要它时,我收到以下错误.

[RuntimeException]                                                                                                                      
Failed to execute git clone --no-checkout  "C:\wamp\www\nj16\nicholasjohn16\vendor\NicholasJohn16\test-repo" && cd /D "C:\wamp\www\nj16\nicholasjohn16\vendor\NicholasJohn16\test-repo" && git remote …
Run Code Online (Sandbox Code Playgroud)

git composer-php satis

6
推荐指数
1
解决办法
372
查看次数

如何将composer与包含packages.json的非packagist github项目一起使用

我想将https://github.com/timrwood/moment放入我的composer.json中以便于维护.

它不是一个官方的包装工程(当然,因为它不是PHP),但它包含一个packages.jsonfor nodejs.我能用这个composer.json吗?

我试过这个,但它不起作用:

{
    "repositories": {
        "timrwood/moment": {
           "type": "git",
           "url": "git://github.com/timrwood/moment.git"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

它会抛出一条错误消息,指出"在git://github.com/timrwood/moment.git的任何分支或标记中找不到有效的composer.json,无法从中加载包."

它缺少版本字符串来定义我想要使用的版本...

有人可以帮忙吗?

或者我不应该在这里使用作曲家,因为我混合JS和PHP?

composer-php momentjs satis packagist

5
推荐指数
1
解决办法
2460
查看次数

创建一个私人包?

我正在创建一个包,但我想将它保密,以便只有我的开发团队的成员才能使用它。

我已经在谷歌上检查过了,Satis 作为一个选项回来了。

我只是想知道我是否需要使用 Satis 来保持我的包的私密性还是有其他方法?Git 集线器上的私人回购能完成这项工作吗?

php laravel composer-php satis laravel-4

5
推荐指数
1
解决办法
6715
查看次数

Satis - 指定 SSH 密钥到 git 服务器

我有一个像这样指定的 satis.json 文件:

{
    "name": "My organizations Satis Server",
    "homepage": "http://satis.mydomain.org",
    "repositories": [
        {
            "type": "vcs",
            "url": "git@git.mydomain.org:/home/git/packages/MyPackage",
            "options": {
                "ssh2": {
                    "username": "git",
                    "pubkey_file": "/config/public-key.pub",
                    "privkey_file": "/config/private-key"
                }
            }
        },
        ...
Run Code Online (Sandbox Code Playgroud)

然后我尝试通过运行以下命令来让 satis 更新:

/usr/bin/php /path/to/satis/satis -n build /path/to/satis.json /path/to/location
Run Code Online (Sandbox Code Playgroud)

这将完全忽略我指定了公钥文件和私钥文件的事实,并继续要求我输入密码。如果我每次都手动输入密码。如果我将 ssh 密钥移动到.ssh/id_rsa.ssh/id_rsa.pub删除选项参数,那么它也可以工作。

如何为每个 repo 正确指定密钥文件,以便我可以对不同的存储库使用不同的密钥,而不是依赖一个密钥 .ssh/id_rsa

ssh-keys satis

5
推荐指数
1
解决办法
2937
查看次数