Satis Composer存储库安装

时间:2014-03-10 16:05:11

标签: php composer-php satis

我是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上找不到任何东西。

谢谢。

2 个答案:

答案 0 :(得分:8)

  

但我仍然无法让自己开始。 Satis是基于项目安装的吗?如果是这样,那是否意味着我必须在每个新项目上安装Satis?

不,满意是您的个人包装类存储库。在其中,您保留了一组定义,以获取您希望自己托管的软件包,而不是从packagist中获取它们。

  

我尝试从文件夹中运行composer.phar create-project composer / satisf --stability = dev,我收到错误消息,指出找不到composer.phar。

该命令将是php' composer.phar'如果作曲家不在你的路径(https://getcomposer.org/doc/00-intro.md#globally

  

所以,我尝试使用composer create-project composer / satisf --stability = dev,并在我运行作曲家的文件夹中创建一个名为satisf的新文件夹。

好,这意味着您已将composer.phar移动到/ usr / local / bin / composer,您可以通过运行" composer&全局运行它(意味着您可以从系统中的每个目录运行它) #34;

A"逻辑"关于如何运行满意的一步一步说明,应该澄清我认为令你困惑的事情:

<强>背景

你想要满意是因为你想从你自己的存储库(git或其他,我用git制作我的例子)中提供一些项目,而不是从用作服务的服务中定义的repo中提取它。默认为composer,即packagist。您可能希望对原始程序包进行更改,并且在程序包更新时不要覆盖它们。因此,如果您可以将更改与上游更改合并,则需要一个中间步骤。

简要作曲家工作流程

Packagist不包含软件包的源代码,它为每个软件包(composer.json文件)保存一组定义,并在此集合中包含可从中获取软件包的定义。

当你运行作曲家时,

  • 它读取packagist中的定义
  • 从定义的公共仓库(github,git,svn等)下载包
  • 它按照包本身中的其他定义进行编译

Brief Composer / Satis工作流程

满意的流程是:   - 指示Composer使用满意的定义   - 它读取满意的定义   - 它从满意的公共仓库下载包   - 它按照包本身中的其他定义进行编译

逐步创建有用的编辑器/ Satis / Git设置

根据以上所述,一步一步的指示是:<​​/ p>

  1. 全局安装composer(为简单起见,你已经拥有它)
  2. 在可从网络上获得的文件夹中,安装即可
  3. 您系统中的某个位置(最简单的在专用git用户的家庭位置,可能是“满意的用户”),克隆一个git仓库,用于您要修改并通过拥有git repo
  4. 在满意的回购中添加一个satisf.json文件,其中包含项目的定义
  5. 从同一个地方运行&#39; php bin / satisf build satisf.json root /(我更喜欢&#39; root /&#39;而不是标准&#39; web /&#39;)并将您的网络服务器的documentRoot设置为&#39; path / to / root /&#39;
  6. 对于上面的步骤#4,例如:

    {
    "name": "My Repo",
    "homepage": "http://satis.mydomain.com",
    "repositories": [
        {
            "type": "git",
            "url": "satis@satis.mydomain.com:<packagename>"
        }
    ],
    
    "require-all": true
    }
    

    现在你有:作曲家,一个git repo和一个满意的回购(你自己的包装)。所有这些都在不同的独立位置。

    使用Composer中的Satis和Git逐步

    创建要安装程序包的目录 通过编写器指令,在此目录中添加composer.json文件。这次虽然包是你修改过的版本,但是composer.json文件例如如下所示:

    {
        "name": "<yourname>/<packagename>",
        "repositories": [
            {
                "type": "composer",
                "url": "http://satis.yourdomain.com"
            },
            {"packagist": true},
            { "type": "composer", "url": "https://packagist.org" }
        ],
        "version": "dev-master",
        "require": {
            "<originalvendorname>/<packagename>": "dev-master"
        },
        "minimum-stability": "dev"
       }
    

    替换为您想要的任何内容,而originalvendorname / packagename是包的全名。 在这种情况下,您将创建自己的软件包版本,该软件包是从您在满意的回购中定义的git repo中提取的。那里没有找到的(可能的依赖关系)将从packagist.org repo中定义的每个依赖关系的原始git仓库中提取。

    当您对自己的软件包版本进行更多修改并进行更多提交时,您需要更新您的满意的回购。通过上面的步骤#5重新构建它。

    通过这种方式,它将链接到您的主分支的最后一次提交(以&#39; dev - &#39;为前缀)

    希望这会有所帮助。分步命令是您在帖子开头所引用的页面中找到的命令。

答案 1 :(得分:3)

下载完成后,您需要创建一个配置json文件,其中包含存储库的位置。无论你喜欢什么,都可以命之后,执行bin / satisf命令以创建Web查看器。像

这样的东西
php bin/satis build mi-config.json web/

如果后一个命令有效,则您已正确配置了您的服务器。然后,您需要做的就是将您的存储库源包含在main composer.json文件中:

"repositories": [
    {
        "type": "composer",
        "url": "http://localhost/satis/web"
    }
],
"require": {
    "my/package: "*"
},

我在你的问题中注意到的事情:

  

我尝试运行composer.phar create-project ...

     

我收到错误消息,指出找不到composer.phar。所以,我尝试使用composer create-project ...

您不需要在服务器上的每个项目上安装composer,因为只要您将其移动到共享路径,它就适用于每个项目(正如文档中所说的那样/ usr / local / bin / composer - 没有pha​​r扩展名) )。请记住,第一个示例是在项目根目录中有作曲家(使用全名和扩展名),第二个示例是尝试使用位于用户/本地路径中的作曲家。

这不是视频,但希望它有所帮助 此致