为 wordpress 主题和插件创建满足作曲家的私有存储库

     2023-02-24     151

关键词:

【中文标题】为 wordpress 主题和插件创建满足作曲家的私有存储库【英文标题】:Creating satis composer private repository for wordpress themes and plugins 【发布时间】:2016-10-11 09:06:10 【问题描述】:

我的目标是将composer.json 文件提交到我们的项目存储库,该文件指定应该为该项目使用哪些主题或插件,并且当开发人员拉下存储库时,他们需要做的就是运行作曲家安装。我们希望将插件排除在项目 repo 之外,以阻止项目 repo 的膨胀以及拉取和推送变得缓慢。

对于标准的 wordpress 插件,例如“WordPress.com 的 Jetpack”,这很好,因为我们将使用 https://wpackagist.org/。但是,对于无法开源的高级插件和内部定制插件,我们希望将它们托管在 Private Composer 存储库中。

因为我们将有这些插件的多个版本,所以我希望所有版本都显示,例如 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

这是我必须指定版本但将其安装在正确的 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": 
        "installer-paths": 
            "wp-content/plugins/$name/": ["type:wordpress-plugin"]
        
    

谁能告诉我如何让这两个场景一起工作?

【问题讨论】:

我做的事情和你非常相似,我能看到的唯一区别是我不使用 require-all 我一个一个地要求它们(所以“要求”: 然后是一个列表) .这对我来说很好,私人插件与 wpackagist 等一起安装...... 你指的是第一个还是第二个版本的代码? 对不起菲尔,第二个。而对于参考源下)我正在使用标签。 谢谢西蒙认为我在正确的轨道上,你能给我一个你在源代码下提到的标签的例子。我认为这里唯一的问题是我需要为每个插件的每个版本更新 satis.json 文件,对于像我这样的大型团队来说,这将成为我试图避免的日常任务。相反,我只想让它自动读取 Git 标签。如果这是您正在做的事情,请发送示例。 啊,我在一个大的作曲家文件中为每个插件获取了特定的标签。所以不确定它实际上对你有什么用处。我的文件用于一个网站,并引入了多个插件等...我认为您所做的与此不同。 【参考方案1】:

我想我有一个类似的设置:在本地 Satis 存储库中,我们既有来自私有 Git 服务器的内部包,也有来自 Github 的所有外部包。

诀窍是做两步:第一步只拉取所有外部包的元数据,这是你的版本范围发挥作用的地方,以避免拉取所有东西。

第二步将扫描所有本地 Git 存储库并检测所有版本,另外将添加在第 1 步中创建的 Composer 存储库。

实际上,您将处理两个将创建两个结果的 Satis 配置,外部包的第一个作业的结果将仅获取所有元数据,并且在第二步中它被导入和使用,就像本地 Git 存储库一样,并配置第二步以扫描“所有”版本并可能从中创建 ZIP 文件将为您可能需要的每个包创建一个不错的本地备份副本。

或者换句话说:

satis-external.json


    "repositories": [
        
            "type":"composer",
            "url":"https://packagist.org"
        
    ],
    "require": 
        "any/package":">=2.0"
    
    "output-html": false,
    "require-dependencies": true

运行它:

php -dmemory_limit=2G satis/bin/satis build satis-external.json external/

satis-internal.json


    "repositories": [
        
            "type": "composer",
            "url": "http://url/from/external/above"
        ,
        
            "type": "vcs",
            "url": "ssh://internal/gitrepo.git"
        
    ],
    "require-all": true,
    "archive": 
        "directory": "dist",
        "format": "zip",
        "prefix-url": "https://whatever/youneed",
        "skip-dev": true
    

运行这个

php  -dmemory_limit=2G satis/bin/satis build satis-internal.json internal/

在 Satis 中添加一个“type=composer”存储库将使其行为与任何其他存储库一样 - 特别是如果您“require-all=true”,它将下载其中提到的所有包,因此请注意不要添加 Packagist 或任何其他直接回购。

另请注意,“require-dependencies”对于外部包来说是正确的,因为您可能不想经历添加要使用的包的每个依赖项的麻烦。

如果您的某些付费包提供远程存储库访问,您可以将此存储库与访问凭据一起添加到外部配置中 - 它应该可以工作。

【讨论】:

哦,太好了:-1 票,没有评论对用户没有帮助的内容。

自定义 CSS 以删除 Wordpress 页面上的特定边距

】自定义CSS以删除Wordpress页面上的特定边距【英文标题】:CustomCSStoremovespecificmarginsonWordpresspage【发布时间】:2018-11-0622:12:59【问题描述】:最近我为我的团队创建了一个新的Wordpress工作人员页面。我正在使用可视化作曲家插件... 查看详情

在 wordpress 插件中使用作曲家包

】在wordpress插件中使用作曲家包【英文标题】:usingcomposerpackagesinawordpressplugin【发布时间】:2015-12-2509:43:56【问题描述】:我正在开发一个wordpress插件,该插件使用了composer包。作为参考,我正在开发的插件在这里:https://github.c... 查看详情

创建 Wordpress 子插件

】创建Wordpress子插件【英文标题】:CreateWordpressChildplugins【发布时间】:2011-12-0218:04:19【问题描述】:我知道我们可以为wordpress创建子主题。但我想知道我们可以创建子插件。这样做的原因是我想在不接触插件文件的情况下向现... 查看详情

为 WordPress 插件存储变量而不创建新表

】为WordPress插件存储变量而不创建新表【英文标题】:StoringavariableforaWordPresspluginwithoutcreatinganewtable【发布时间】:2014-07-0606:42:21【问题描述】:我正在创建一个自定义主题,它提供了一种更改WordPress网站主页布局的方法。我想... 查看详情

wordpress基础:安装主题和插件

一:安装主题1、下载主题2、解压至wordpress目录下的/wp-content/themes3、访问后台>外观>主题启用即可 二:安装插件1、下载插件2、解压至wordpress目录下的/wp-content/plugins3、访问后台>插件>已安装的插件启用即可 查看详情

如何使用“主题我的登录”插件在 wordpress 登录表单中自动填写字段?

】如何使用“主题我的登录”插件在wordpress登录表单中自动填写字段?【英文标题】:howtomakeautofillfieldinwordpressloginformusing"thememylogin"plugin?【发布时间】:2013-10-0711:11:21【问题描述】:我在wordpress中使用插件“主题我的登... 查看详情

wordpress电子商务插件和主题的使用方法

前提步骤:卸载wordpress干净,需要把相应的数据库删除:dropdatabade**; (1)先改wordpress中重要文件的权限:777(2)用usradd-dwww/html命令添加www用户后,把该用户给wordpress:chown-R/html:www*(3)就可以安装相应插件和上传主题... 查看详情

wordpress主题制作:子主题(childtheme)(代码片段)

...。另外可以使用框架模式,使用框架时要求创建子主题。WordPress子主题继承了你所选择父框架的所有功能。它们一般只包含两个文件:style.css、functions.php以及其它图形文件夹、脚本文件夹、子主题其它必要的文件夹。要创建一... 查看详情

php可用于主题和插件日常开发的有用wordpress常量列表。(代码片段)

查看详情

php的93个wordpress插件有后门

参考技术A因为93个WordPress主题和插件包含后门,从而使得攻击者可以完全控制网站。攻击者总共入侵了AccessPress的40个主题和53个插件,AccessPress是WordPress插件的开发者,用于超过360,000个活动网站。该攻击是由Jetpack的研究人员发... 查看详情

php禁用wordpress管理面板中的主题和插件编辑器(代码片段)

查看详情

如何开发一个wordpress插件

工具:文本编辑器、wordpress源码、浏览器、apachemysql环境步骤:1.首先安装wordpress环境,安装成功后访问如下。2.在wp-content\\plugins目录下新建自己要创建的插件名称,这个名称需要是唯一的,如下图:3.编辑mytest_helloword.php文件如下... 查看详情

wordpress主题和插件

💂个人网站:【海拥】【海拥资源库】【摸鱼小游戏】🤟风趣幽默的前端学习课程:👉28个案例趣学前端💅想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】💬免费且实用的计算... 查看详情

wordpress怎么自己创建主题和设置主题

参考技术A首先,打开wordpress后台按提示输入需要的东西要牢记你的用户名和密码以后随时都要用到不然你就进不去你的网站后台了点击“外观”“主题”,就是给网站添加一个基本的框架。点击"添加”,记住要添加一个适... 查看详情

jQuery 和 Wordpress - 脚本不工作

】jQuery和Wordpress-脚本不工作【英文标题】:jQueryandWordpress-Scriptsnotworking【发布时间】:2013-08-1223:52:12【问题描述】:我正在尝试为我正在创建的wp插件实现一些jquery。在我的主题的functions.php中,我有以下代码:functionload_jquery()//... 查看详情

wordpress 主题定制器下拉菜单

】wordpress主题定制器下拉菜单【英文标题】:wordpressthemecustomizerdropdown【发布时间】:2017-07-1813:07:52【问题描述】:我正在尝试在Wordpress主题自定义区域中创建一个选择框/下拉菜单,其中选项将从我的Wordpress数据库中名为“wp_rev... 查看详情

wp安装后,添加插件和主题都不能正常安装——无法创建目录,请问是啥原因,要如何解决?

我用的是免费空间,wordpress安装后,添加插件和主题都不能正常安装——无法创建目录,请问是什么原因,要如何解决?正在从http://downloads.wordpress.org/plugin/akismet.2.4.0.zip下载更新…正在解压缩更新文件…无法创建目录。……谢... 查看详情

php手动延迟解压缩wordpress中的js文件。根据主题和已安装的插件,最好让插件处理(代码片段)

查看详情