使用作曲家将 github 包安装到 Laravel 项目中



我需要使用 composer 从 github url 安装自定义软件包。我的基于 Laravel 5.2 的项目是干净和全新安装的。

我需要的 github 项目是:https://github.com/cmcdonaldca/ohShopify.php

我仍然是Laravel和作曲家的新手,需要尽可能清晰的步骤帮助。

有什么帮助吗?

我将使用此存储库来解释这些步骤。原因是因为您包含的存储库没有我认为在这种情况下无法使用作曲家安装的composer.json

  1. 在 composer.json 中添加存储库

    "repositories": [
       {
         "url": "https://github.com/notmaintained/shopify.php",
          "type": "git"
        }
     ],
    
  2. require 中添加包名称,并在dev后添加分支名称:

    "sandeepshetty/shopify.php" : "dev-master"
    

编辑:

刚刚测试过这个。有一些错误,因为它是未维护的包,但你应该得到使用 git 安装作曲家包的想法。

对上述答案的改进。

  1. 在 composer.json 中添加存储库

    "repositories": [
        {
            "url": "https://github.com/notmaintained/shopify.php",
            "type": "git"
        }
    ],
    
  2. 在 require 中添加包名称,并在 dev 后添加分支名称:

    "sandeepshetty/shopify.php" : "dev-master"
    

包名称有时会与用户名/存储库名称混淆。始终打开 composer.json 文件以获取实际的包装笼名称。我花了很多时间环顾四周。

Composer 使用存储库 https://packagist.org/中的包。你不能直接从 github 使用 github 包。

您在这里有 2 个选项。

  1. 使用 https://packagist.org/上提供的软件包与 shopify API 集成。我看了一下packagist,发现了火箭代码/shopify和phpish/shopify。若要将它们添加到 laravel 项目中,请在包含 composer.json 文件的文件夹中使用以下命令:

    composer require rocket-code/shopify

  2. 您可以使用 git 存储库创建自己的 packagist 包。 因此,您将克隆存储库,然后创建自己的 packagist 帐户。因此,注册,获取一个packagist帐户,上传文件,然后在您的laravel项目中要求它。

我建议您使用现有的作曲家包,因为它消除了管理自己的包的责任。

我在任何地方都无法得到这个问题的答案,这也就不足为奇了。 可以这么说,你对作曲家在幕后是如何工作的有所了解,因为你必须明确地告诉作曲家你想要它做什么。 因此,我建议仔细阅读这里的文档.
接下来,如果您已经安装了其他软件包,请查看 vendor/composer/installed.json 文件。 这将使您了解作曲家在向类映射添加命名空间时要查找的内容。

我正在开发一个 laravel 包,我想在不使用 packagist 的情况下导入一个回购,我被困了一段时间。 我最终得到了它的工作,这就是我所拥有的。

"repositories": [
    {
        "type": "package",
        "package": {
            "name": "example/package",
            "version": "0.1.0",
            "dist": {
                "url": "https://github.org/name/package/src/master",
                "type": "git"
            },
            "source": {
                "url": "https://github.org/name/package",
                "type": "git",
                "reference": "master"
            },
            "autoload": {
                "psr-4": {
                    "Example\Package\": "src/"
                }
            },
            "extra": {
                "laravel": {
                    "providers": [
                        "Example\Package\ExamplePackageProvider"
                    ]
                }
            }
        }
    }
],
"require": {
    "exmaplepackage": "0.1.0"
}

运行composer install检查/vendor/composer/installed.json,它应该显示...

{
    "name": "exmaplepackage",
    "version": "0.1.0",
    "version_normalized": "0.1.0.0",
    "source": {
        "type": "git",
        "url": "https://github.org/name/package/src/master",
        "reference": "master"
    },
    "dist": {
        "type": "git",
        "url": "https://github.org/name/package"
    },
    "type": "library",
    "extra": {
        "laravel": {
            "providers": [
                "Example\Package\ExamplePackageProvider"
            ]
        }
    },
    "installation-source": "source",
    "autoload": {
        "psr-4": {
            "Example\Package\": "src/"
        }
    },
    "install-path": "../exmaple/package"
}

然后检查供应商/autoload_classmap.php,您应该会看到命名空间。

现在,如果提交并推送包存储库,并希望更新测试存储库中的包,则需要更改版本。

...
    "package": {
        "name": "example/package",
        "version": "0.2.0",
        "dist":
...

然后运行composer update example/package

相关内容

  • 没有找到相关文章

最新更新