最近我一直在思考如何将作曲家与Wordpress插件集成在一起。是的,在任何人提出之前,Wordpress是一个要求。我想出了一些想法,但它们都有很大的缺点。
第一个系统只是包含每个插件的composer包(也称为run,在本地安装,然后用插件压缩供应商文件夹,以便于上传)。其优点是易于安装和简单。当使用相同的依赖项安装多个插件时会出现问题。它不仅非常臃肿,而且如果插件之间存在依赖版本差异,那么自动加载程序就会把彼此搞砸,只加载一个版本。
另一种选择是继续在每个插件中使用composer包,但也有另一个插件(我们称之为框架插件),它只有多个插件才能使用的包。这样做的好处是没有重复的包,所有插件都将与随框架插件一起提供的包版本一起工作;但是此时会有很多自动加载程序,从来都不是一件好事,版本管理变得非常复杂。
当然,如果我可以将我的插件作为composer包来处理,并且在根目录中有一个供应商文件夹,并通过composer命令行进行安装,那么这会容易得多;但是这个系统的一个要求是可以通过ftp管理插件,而不是ssh。
我想得越多,似乎就越不可能,我知道作曲家不是为此而设计的,但有没有人想过这是如何实现的呢?
发布于 2013-11-23 16:44:58
Wordpress可以与composer完全集成--如果您使用作曲家/安装程序库,那么您可以包含插件或主题,这些插件或主题有自己的composer.json文件,其类型设置为wordpress-plugin或wordpress-主题,它会将它们放置在正确的位置(wp内容/主题而不是供应商/)。
所有公共wordpress插件和主题都可以通过Wordpress Packagist - http://wpackagist.org/获得,您只需将其包含在整个项目的composer.json中,如下所示:
{
    "name": "acme/brilliant-wordpress-site",
    "description": "My brilliant WordPress site",
    "repositories":[
        {
            "type":"composer",
            "url":"http://wpackagist.org"
        }
    ],
    "require": {
        "aws/aws-sdk-php":"*",
        "wpackagist/advanced-custom-fields":"*",
        "wpackagist/posts-to-posts":"1.4.x"
    },
    "autoload": {
        "psr-0": {
            "Acme": "src/"
        }
    }
}您可以在github (或类似的)中安装自己的编写器插件/主题,方法是为它们添加回购,如下所示:
{
    "type": "vcs",
    "url": "https://github.com/YourUserName/MyWordPressPlugin.git"
},确保你有一个composer.json在你自己的插件的git,类型设置为wordpress-插件或wordpress-主题。将它们的名称添加到项目的composer.json的require部分。我经常这样做购买插件-我为他们创建一个新的私人回购,并添加了一个composer.json。
当涉及部署时,您将无法在远程服务器上运行composer安装,但您可以只从运行了install命令的工作副本中运行FTP。或者,如果您正在使用Git,您可以有一个post接收挂钩设置,它导出项目,运行composer安装,然后运行FTP。
https://stackoverflow.com/questions/20064741
复制相似问题