插件开发和编写器

时间:2019-11-19 作者:batman

我正在开发一个插件,我在这方面很新,所以我试图找到如何将composer与我的插件集成的最佳解决方案。

问题是我需要的SDK相当大,当我将其集成到插件上时,插件的容量超过50mb,这是非常大的,在插件安装过程中,有时会因为太大而崩溃。我正在从Firebase实时数据库上的插件发送许多数据,因此我需要使用kreait/firebase-php SDK。

所以,我想找到一些解决方案,在那里我只能设置作曲家。插件文件夹中的json文件,并在插件激活后拉取并安装所需的SDK。

这是我的作曲家。json文件:

{
    "name": "marko/conn-firebase",
    "description": "desc",
    "type": "project",
    "license": "GNU3",
    "authors": [
        {
            "name": "Marko",
            "email": "[email protected]"
        }
    ],
    "minimum-stability": "dev",
    "require": {
        "kreait/firebase-php": "4.35",
        "php": ">= 7.2.0"
    }
}

欢迎任何帮助。谢谢

1 个回复
最合适的回答,由SO网友:Tom J Nowell 整理而成

所以,我想找到一些解决方案,在那里我只能设置作曲家。插件文件夹中的json文件,并在插件激活后拉取并安装所需的SDK。

事情不是这样的。Composer是一个CLI工具,旨在通过CLI运行,而不是设计为在浏览器请求上下文中运行。如果您实现了这一点,大多数PHP开发人员都会认为这是非常糟糕的做法。

如果不能及时将单个文件上载和解压到文件夹中,然后运行CLI命令下载多个ZIP并将其写入文件夹,并找出依赖项,那么很可能会将当前的问题替换为超时问题。

如果听起来你的实际问题是在插件页面上传大拉链不起作用,为什么不问问呢?

这就是你处理问题的方式composer 对于插件分发:

如果您将插件分发给销售或客户,请运行composer install 然后将结果打包

如果要将其置于版本控制中,请不要运行composer install, 这在部署/下载期间发生

这同样适用于npm 或任何其他包管理。你不跑composer installnpm install 而是将结果部署到生产环境中。

最后一条提示试图回答您的实际问题:

您不需要安装dev依赖项来分发插件。您可能正在安装require-dev, 您想要的包中有PHPUnit和其他QA工具作为其开发依赖项列出,从而扩大了大小。

此外,如果您是为了开发而这样做的,只需使用本地dev环境将其直接安装在文件系统上,然后上载最终的生产版本而不是dev版本。

删除minimum-stability: dev 分区或调整composer install 命令仅从require.

相关推荐

升级到PHP7.3并将Apache从Prefork更改为Event Breakes WordPress

我在Ubuntu 18.04上。我刚刚将服务器从PHP7.2更新为PHP7.3using this guide之后,我将Apache从Prefork更改为Eventusing this guide现在,当我访问Wordpress网站时,我看到以下内容,而不是普通的主页:<?php /** * Front to the WordPress application. This file doesn\'t do anything, but loads * wp-blog-hea